三大特性繼承

什麼叫繼承

繼承就是抽取不同的類共有的功能和屬性把他們定義爲一個類,並且讓其他的類繼承這個類,就可以得到這個類所有的共有內容。這個類被叫做父類(超類),而其它的類被叫做子類。

在Java中繼承的侷限性

1.java只能單繼承

           單繼承是指:一個類繼承另一個類。

2.java不能多繼承,因爲多繼承存在不確定性。

            多繼承是指:一個類同時繼承了多個類。

例如class A extends B,C(){

}這是不被允許的。

解決java單繼承的侷限性:

1.進行多重繼承(多層繼承)

2.進行多實現(接口)

繼承子父類間成員屬性的特點:

1.有父類成員屬性,無子類成員屬性,用父類的

2.有子類,無父類用子類的。

3.若有相同成員變量,既有父類又有子類依據就近原則,用子類的

4。父類子類存在同名成員變量,如果想要調用父類成員變量,則用super可以直接調用,如果想要調用子類可以直接寫成員變量名字或者用this調用。這樣可以利用super和this進行區分子父類變量。

super:

super不是用來代表父類對象的,super是一個子類對象中一塊表示繼承父類的成員空間。

super不能出現在靜態方法中。因爲super時在子類對象開闢的一個繼承父類的成員空間。

1.用於區分子父類同名成員,被super標識的就是子類繼承父類的。

2.super(參數列表)表示的是父類構造器,但是如果用super調用構造器一定得放在子類構造器第一句。

繼承子父類間成員方法的特點:

1.有父類方法,無子類方法,用父類

2.無父類方法,有子類方法,用子類

3.既有父類又有子類方法並且方法完全相同,則子類方法覆蓋(重寫)父類方法。

4.如果說子父類間有方法被重寫,則用this或者沒有任何標識的是子類覆蓋父類後的方法,如果用super標識的則是父類方法。

方法的重載:overload

方法重載:方法名相同,方法的參數列表不同(數量,前後順序,參數數據類型),當然跟返回值類型無關。

方法的重寫:override

方法重寫:首先要有父類,其次父類其中方法和子類方法完全相同(方法名,返回值類型,參數列表等),子類的方法作用範圍要比父類的方法作用範圍大。

繼承子父類間構造器的特點

1.子類構造器調用父類構造器時,super()必須要在子類構造器的第一句。

2.父類中構造器只寫了帶參構造時候,默認的無參構造便不在提供了,如果子類中再次調用父類構造只能調用帶參,super(參數列表),如果直接寫super();則會報錯因爲父類已經沒有無參構造了。

3.在構造器中this和super不能同時使用,因爲this和super用他們來調用構造器都必須放在構造器中的第一句,如果同時使用就會報錯。

解決方案:讓創建對象的構造器不要調用super,用它調用本類的重載的構造器,讓重載構造器調用父類構造器,這樣就可以了。

子類繼承父類的成員除了私有都可以繼承(包括靜態)。(也就是不能直接訪問私有)

如何訪問父類私有呢?(間接訪問)

在父類中給出公共訪問方式如:get/set

final關鍵字 :是個修飾符,可以修飾成員變量,成員方法,類。

1.final所修飾的變量後無法被改變(被稱爲常量)。

2.final所修飾的成員方法無法被重寫。

3.final所修飾的類是無法被繼承的。

4.被final修飾的變量的賦值方式

      1>.在聲明的同時進行初始化值。

      2>.先聲明在構造器初始化對象的時候也可以進行初始化值。

5.常量名一般都是大寫。

     一般常量都被定義爲類變量,因爲定義完final數值不再改變。而且可以隨着類加載而加載,生命週期延長,類不銷燬便一直存在,將其稱爲全局變量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章