Java入門教程-抽象類和接口的區(qū)別

接口
1因為java不支持多重繼承,所以有了接口,一個類只能繼承一個父類,但可以實現多個接口,接口本身也可以繼承多個接口。
2接口里面的成員變量默認都是publicstaticfinal類型的。必須被顯示的初始化。
3接口里面的方法默認都是publicabstract類型的。隱式聲明。
4接口沒有構造方法,不能被實例化。
5接口不能實現另一個接口,但可以繼承多個接口。
6類如果實現了一個接口,那么必須實現接口里面的所有抽象方法,否則類要被定義為抽象類。
抽象類
1如果將一個類聲明為abstract,此類不能生成對象,只能被繼承使用。
2抽象方法必須存在于抽象類中。
3抽象類中可以有一般的變量和一般的方法。
4子類繼承抽象類必須實現其中抽象方法,除非子類為抽象類。
privatevoidprint(){};此語句表示方法的空實現。
abstractvoidprint();此語句表示方法的抽象,無實現。
接口和抽象類的區(qū)別
1接口只能包含抽象方法,抽象類可以包含普通方法。
2接口只能定義靜態(tài)常量屬性,抽象類既可以定義普通屬性,也可以定義靜態(tài)常量屬性。
3接口不包含構造方法,抽象類里可以包含構造方法。
抽象類不能被實例化,但不代表它不可以有構造函數,抽象類可以有構造函數,備繼承類擴充
標簽: