類的繼承是存在局限性的,一個 子類只能繼承一個父類,但是可以多重繼承,多重繼承就是先讓B類繼承A類,之后再讓C類繼承B類。
calss A{} //這是父類
class B extends Af{; //此時 B類具備了A的操作
class C extends B{}; //此時 C類有A類和B類的所有操作
DEMO:多重繼承
此時C類就繼承了A類和B類的屬性以及方法,其實上在實例化子類的時候會調用父類的構造方法(雖然子類不能繼承父類的構造方法,但是在實例化子類的時候會默認調用),而且默認調用的是無參構造方法。
DEMO:調用父類的構造方法
通過上面的錯誤提示就可以知道實例化子類的時候一定要先調用父類的構造方法,默認調用的是無參數構造方法,此時如果提供了有參數構造方法,那么我們要將無參數構造方法顯示的定義。
DEMO:無參構造方法調用
知道了實例化子類的時候需要調用父類的無參構造方法,如果要調用父類的有參數構造方法呢?此時需要使用到一個新的關鍵 字“super
DEMO:調用有參數構造方法
以上就是構造方法在子類和父類之間調用的關系,你要清楚。
總結:
1、繼承有單繼承的局限(一個子類只能有一個父類),但是可以多重繼承
2、在實例化子類的時候會先調用父類的構造方法(默認調用的是無參數構造,如果要調用有參數構造需要使用關鍵字super實現)
3、如果是多重繼承,那么實例化子類的時候最先調用的是最高父類的構造方法,依次往下
有完整的Java初級,高級對應的學習路線和資料!專注於java開發。分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分布式及面試資料、開源項目,助力開發者成長!
歡迎關注微信公眾號:碼邦主