Day8 類的繼承

2021-09-08 20:04:17 字數 1477 閱讀 9514

觀察兩個類的成員組成

提取相同的屬性和方法

寵物是父類,狗和金魚是子類。子類具有父類的屬性和方法。

是使用已存在的類作為基礎建立新類的技術。

單一繼承:只有乙個父類。

父類可以叫做基類、超類。子類可以叫做派生類。

子類可以繼承父類中的成員(屬性和方法)。

但是需要注意:

1.private的成員不能繼承

2.子類和父類不在同乙個程式包,使用預設訪問許可權的成員不能繼承

3.構造器不能繼承。

設計繼承關係要符合黎克特制替換原則。is-a關係

子類是父類,可以完全替換掉父類,**沒有任何影響。

黎克特制替換原則(lsp):在乙個軟體系統中,子類物件可以替換所有使用的父類物件,且程式行為沒有變化

在子類中,子類中的方法名、引數、返回值和父類中的完全相同,那麼叫做子類重寫了父類中的方法。

只有例項成員方法才能重寫。靜態成員方法、靜態變數、例項成員變數不能重寫,隱藏。

重寫可以實現多型,隱藏不能實現多型

1.名字必須完全一致

2.引數 父類擦除後與子類一致;或者與子類完全一致。

3.返回值型別 可以完全一致,如果是引用型別,允許子類的返回值型別是父類的 子類

4.訪問修飾符 子類不能比父類更嚴格。

5.異常處理 不能比父類範圍更大。

1.子類修改了父類中的功能。

2.子類擴充套件了父類中的功能。

class

父類手機

}

class 子類手機 extends

父類手機

}

表示父類範圍

super關鍵和this作用類似,是被遮蔽的成員變數或者成員方法或變為可見,或者說用來引用被遮蔽的成員變數和成員成員方法。

不過super是用在子類中,目的是訪問直接父類中被遮蔽的成員,注意是直接父類(就是類之上最近的超類)。

第一、在子類構造方法中要呼叫父類的構造方法,用「super(引數列表)」的方式呼叫,引數不是必須的。同時還要注意的一點是:「super(引數列表)」這條語句只能用在子類構造方法體中的第一行。

第二、當子類方法中的區域性變數或者子類的成員變數與父類成員變數同名時,也就是子類區域性變數覆蓋父類成員變數時,用「super.成員變數名」來引用父類成員變數。當然,如果父類的成員變數沒有被覆蓋,也可以用「super.成員變數名」來引用父類成員變數,不過這是不必要的。

第三、當子類的成員方法覆蓋了父類的成員方法時,也就是子類和父類有完全相同的方法定義(但方法體可以不同),此時,用「super.方法名(引數列表)」的方式訪問父類的方法。

自學 java 筆記 day8(繼承下)

知識點 多型的概述 多型的擴充套件性 多型的轉型 多型成員特點 obejec類 equals object類 tostring 多型定義 某一類事物存的多種存在形態。例 動物中的貓 狗 貓這個物件對應的型別是貓型別 貓 x new 貓 同時貓也是動物中的一種,也可以把貓稱為動物 動物 y new 貓...

day8抽象類與介面

1.1抽象方法 沒有方法體的方法。1.2定義格式 抽象方法定義格式 修飾符 abstract 返回值型別 方法名 引數列表 抽象類定義格式 abstract class 類名 注意 乙個類包含抽象方法與普通方法,繼承抽象類的子類必須重寫父類所有的抽象方法,否則,子類必須宣告為抽象類,最終,所有子類必...

實習日記 Day8

今天是聊了很多天的一天 今日份心得體會的主題是 在聊天中學習 工作以外的興趣愛好 今天我竟然和導師閒聊好了幾小時,當然內容主要是圍繞著工作展開的話題。也許是昨天送的小禮物奏效了,又也許是因為今天真的很閒,以至於組裡有同事壓根沒來上班,再或者是因為上了年紀的男性長輩都比較喜歡 好為人師 我都不得而知 ...