1. 程式人生 > >JAVA學習——基礎部分——面向物件——繼承

JAVA學習——基礎部分——面向物件——繼承

一、概念(自我理解)

將一堆子類進行總結,將都有的相同點抽象成父類,由父類形成大體,然後子類豐富父類。

繼承類不可以多繼承,JAVA是單繼承類。

父類還可以往上加分別是:子類——父類——父類的父類——·········——最高時抽象類

可以用這句話判斷:“A is a B”若是這個成立那麼就可以形成繼承關係。

父類也叫超類,基類。子類也叫派生類。

子類物件建立的時候先呼叫父類的構造器,預設是無參構造器。這樣就需要一個關鍵字:super。

這個放在方法的第一句,用來繼承父類的構造方法。This Super不能共同出現在同一個地點。

二、子類建立的過程(實行順序)

父類靜態程式碼塊

子類靜態程式碼快

父類例項構造器

父類構造器

子類例項構造器

子類構造器

三、注意事項

子類繼承父類,但是隻是繼承屬性和方法。構造方法不會被繼承,但是可以呼叫。

私有成員也不會被繼承

四、繼承的優缺點

優點:

  1. 節省了程式碼
  2. 增加了可修改性和可擴充套件性

缺點:

耦合性高

五、關於方法——方法的重寫

大前提:這個是繼承關係的子類。

重寫就為了拓展方法的功能,增強父類。

重寫的規則:子類方法簽名和父類方法簽名相同。(方法簽名:訪問修飾符 返回值 方法名()方法體改寫)

  1. 方法名相同
  2. 引數列表相同
  3. 返回值是父類返回值的子類
  4. 訪問許可權不能嚴於父類

六、抽象類

概念(自我總結非書面):所有類裡共同的特點,抽象程度高,若是建立成物件也沒有什麼用,所以這樣需要這一個關鍵字:abstract,在class前加入。一旦有了這個關鍵字就不能例項化

用法:只定義,不實現。但是抽象類裡可以有實現類,如果全是抽象方法那麼就必須在子類裡面實現。

有抽象方法的類一定是抽象類,抽象類裡不一定有抽象方法。