抽象類(abstract class)的特點:
1.抽象類、抽象方法都必須使用abstract修飾。
2.抽象類中,可以有非抽象方法,甚至可以是沒有任何方法或變量的空類。
? 對于抽象類中不定義抽象方法的用意在于:使該類不能被創建對象。
3.抽象方法,是不能有方法體的。
? ? 對于抽象方法的訪問限制符,可以是public、protected、不寫。
4.抽象類,不能使用new創建對象。
5.抽象類的抽象方法,如果只有部分抽象方法被子類重寫,則該子類依然是抽象類;如果抽象類的全部抽象方法被子類重寫,則該子類可以是普通類,當然也可以是抽象類。
?
接口(interface):
接口可以認為是一個特殊的抽象類:該抽象類中的方法都是抽象的,則這個抽象類就可以用接口的形式來描述。
1.interface中,有定義常量,抽象方法。
? 對于常量,默認使用的修飾符是:public static final.
? 對于抽象方法,默認使用的修飾符是:public abstract.
? ?修飾符都只能是給定的任意組合,當然都是可以不寫的,不管哪種,表示的效果都是一樣的。
2.接口可以被類多重實現。
3.接口與接口之間,只能通過extends進行擴展。即稱為:接口與接口之間擁有繼承關系。
? 雖然是繼承(使用extends),但是可以寫多個,即類似于多重繼承。例如:
? Inter1 ,Inter2都是interface,則有 interface Inter3 extends Inter1,Inter2{}是正確的。
? 對于普通類,Cla1,Cla2,都是Class,但是Class Cla3 extends Cla1,Cla2{}是錯誤的。
?