介面的特點!!!!
-
介面不能創建物件
-
介面的變數使用public static final修飾,如果不寫默認添加;
-
介面的方法為public abstrict,如果不寫默認添加;
-
子類必須重寫介面中所有的抽象方法后,才能創建物件;
-
如果子類不能夠重寫所有的抽象方法,子類必須定義成抽象類;
介面和抽象類的區別!!!!!
- 相同點
- 都是位于繼承的頂端,用于被其他類繼承;
- 都不能直接實體化物件;
- 都包含了抽象方法,其他子類都必須覆寫這些抽象方法;
- 區別
- 抽象類可以定義非抽象方法,避免子類重復實作這些方法,提高代碼的復用性,介面只能包含抽象方法;
- 一個類只能繼承一個直接父類,卻可以實作多個介面,(介面彌補了Java的單繼承)
- 類與類之間只能是單繼承,介面與介面之間可以是多實作;
- 抽象類可以定義普通的成員變數,介面只能定義 public static final 的成員變數;
練習題:
定義一個類是員工,員工有id和name屬性,有一個方法是eat呼叫eat所有員工輸出吃飯,有一個抽象方法是work,不同的員工作業的內容不同,定義3個類,程式員,老師,網管,分別呼叫work的時候”id為xx的name寫代碼”,”講課”,”拉網線”,public abstract class Employee { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void eat() { System.out.println("該吃飯"); } public abstract void work(); } class programmer extends Employee { @Override public void work() { System.out.println("id : " + getId() + " 的 " + getName() + "寫代碼"); } } class Teacher extends Employee { @Override public void work() { System.out.println("id : " + getId() + " 的 " + getName() + "講課"); } } class Managert extends Employee { @Override public void work() { System.out.println("id : " + getId() + " 的 " + getName() + "拉網線"); } } class Test { public static void main(String[] args) { programmer pro = new programmer(); pro.setId(001); pro.setName("zxh" ); pro.work(); pro.eat(); } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/156473.html
標籤:Java
上一篇:交換排序之快速排序(Java)
下一篇:集合繼承關系和實作
