java學習——物件導向之繼承

blue~Jerry_發表於2020-12-07

物件導向之繼承

1.java中只允許多層繼承,而不允許多重繼承。

//多重繼承,錯誤,相當於一個人只能有一個親生父親
class A{}
class B{}
class C extends A,B{}

//多層繼承,正確,相當於兒子繼承父親,孫子繼承兒子一樣
class A{}
class B extends A{}
class C extends B{}

2.子類繼承父類的時候會繼承父類的所有操作,但對於所有的私有操作屬於隱式繼承,而非私有操作屬於顯式繼承

3.在子類物件構造前一定會預設呼叫父類的構造方法,以保證父類物件先例項化,子類物件再例項化


方法的重寫:子類可以重寫父類中的方法,重寫後子類中的方法將會覆蓋掉父類中的同名方法。注意:被子類所重寫的方法不能擁有比父類更嚴格的訪問控制許可權!


常見面試題:
方法的重寫與過載的區別?
1.英語單詞不同:過載:Overloading 重寫:override。

2.作用範圍不同:過載:發生在一個類裡面;重寫:發生在繼承關係中。

3.定義不同:過載:方法名相同,引數的型別及個數不同;重寫:方法名、引數型別、個數以及方法返回值都相同。

4.許可權:過載無許可權要求;重寫有嚴格的許可權要求,即被重寫的方法不能擁有比父類更為嚴格的訪問控制許可權。

相關文章