繼承

Java的類可以分為三類:

類:使用class定義,沒有抽象方法。

抽象類:使用abstract class定義,可以有也可以沒有抽象方法。

接口:使用inerface定義,只能有抽象方法。

在這三個類型之間存在如下關系:

類可以extends:類、抽象類(必須實現(xiàn)所有抽象方法),但只能extends一個,可以implements多個接口(必須實現(xiàn)所有接口方法)。

抽象類可以extends:類,抽象類(可全部、部分、或者完全不實現(xiàn)父類抽象方法),可以implements多個接口(可全部、部分、或者完全不實現(xiàn)接口方法)。

接口只能extends一個接口。

繼承以后子類可以得到什么:

子類擁有父類非private的屬性和方法。

子類可以添加自己的方法和屬性,即對父類進行擴展。

子類可以重新定義父類的方法,即多態(tài)里面的覆蓋,后面會詳述。

關于構(gòu)造函數(shù)

構(gòu)造函數(shù)不能被繼承,子類可以通過super()顯示調(diào)用父類的構(gòu)造函數(shù)。

創(chuàng)建子類時,編譯器會自動調(diào)用父類的無參構(gòu)造函數(shù)。

如果父類沒有定義無參構(gòu)造函數(shù),子類必須在構(gòu)造函數(shù)的第一行代碼使用super()顯示調(diào)用。

類默認擁有無參構(gòu)造函數(shù),如果定義了其他有參構(gòu)造函數(shù),則無參函數(shù)失效,所以父類沒有定義無參構(gòu)造函數(shù),不是指父類沒有寫無參構(gòu)造函數(shù)。看下面的例子,父類為Human,子類為Programmer。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容