抽象類和接口

1、抽象類

[public] abstract class ClassName {
abstract void fun();
}
①概念
被abstract修飾的類稱爲抽象類,一般情況下抽象類中都抽象方法,所以不能被創建對象,特殊情況下抽象類可以不含有抽象方法(無意義)。

②抽象方法
抽象類中的抽象方法必須是被public或者protected修飾(因爲如果被private修飾,子類就不能去實現該方法,則無意思),缺省默認是public。

③如果一個類繼承一個抽象類,則子類必須實現父類的所有抽象方法,如果有抽象方法沒有被實現,則子類也必須定義爲抽象類。

2、接口

[public] interface InterfaceName {

}

①接口可以說是抽象類的再抽象。極度的抽象。

②接口中變量都必須用public static final修飾,接口中的方法都必須是public abstract修飾(不寫的話默認)。

③一個類可以通過implements實現一個接口,但是必須實現接口中所有的方法。(如果接口中有的方法沒被實現,那麼這個類必須是抽象的)

④一個類可以實現多個接口。

3、接口和抽象類的區別

①接口中的方法都是抽象的且被public abstract修飾的,抽象類中的可以有非抽象方法,而且抽象方法還可以被protected修飾。

②接口中的成員變量必須是public static final修飾的,抽象類是可以各種各樣的。

③單繼承,多實現。

④抽象類是對類的整體的抽象,而接口是對局部行爲的抽象。

⑤抽象類是模板式設計,接口是輻射式設計(行爲規範)。抽象類就是個模板,其他子類直接繼承就可以使用裏面的內容,當抽象類這個模板進行修改時,子類不需要修改,可以直接使用。接口是一個行爲規範,當接口修改的時候,行爲規範修改了,那實現他的類都得修改。

發佈了28 篇原創文章 · 獲贊 3 · 訪問量 3519
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章