09 物件導向之繼承

2021-08-21 00:15:59 字數 1672 閱讀 3700

一、何為繼承?

繼承(extends):讓類與類之間產生關係,字父類關係。

二、繼承的好處和弊端

a:繼承的好處

a:提高了**的復用性(如果再有個豬的類,只需要直接繼承animal就可以用了)

b:提高了**的維護性   如果要給動物加乙個屬性name,只需要在aniaml中新增name就行

c :讓類與類之間產生了關係,是多型的前提

b:繼承的弊端

類的耦合性增強了。類與類之間的關係太緊密,一邊新增屬性,另一邊就多了乙個,有的時候是

期望的,但是有的時候是不期望的。

開發的原則:高內聚,低耦合。內聚:是指自己完成事情的能力,自己能完成就不要麻煩別人

耦合:類與類的關係

內聚:就是自己完成某件事情的能力

三、繼承的注意事項

a:繼承的注意事項

a :子類只能繼承父類所有非私有的成員(成員方法和成員變數)

b:子類不能繼承父類的構造方法,但是可以通過super關鍵字去訪問父類構造方法。

c:不要為了部分功能而去繼承

專案經理

姓名 工號 工資 獎金

程式設計師

姓名 工號 工資

b:什麼時候使用繼承

繼承其實體現的是一種關係:"is a"。

person

student

teacher

水果蘋果

香蕉橘子

採用假設法。

如果有兩個類a,b。只有他們符合a是b的一種,或者b是a的一種,就可以考慮使用繼承。

四、this和super的區別和應用

a:this和super都代表什麼

this:代表當前物件的引用,誰來呼叫我,我就代表誰

super:代表當前物件父類的引用

b:this和super的使用區別

a:呼叫成員變數

this.成員變數 呼叫本類的成員變數,也可以呼叫父類的成員變數

super.成員變數 呼叫父類的成員變數

b:呼叫構造方法

this(...)

呼叫本類的構造方法

super(...)

呼叫父類的構造方法

c:呼叫成員方法

this.成員方法 呼叫本類的成員方法,也可以呼叫父類的方法

super.成員方法 呼叫父類的成員方法

五、方法重寫的注意事項

a:方法重寫注意事項

a:父類中私有方法不能被重寫

因為父類私有方法子類根本就無法繼承,既然子類無法繼承,就談不上重寫了

b:子類重寫父類方法時,訪問許可權不能更低

最好就一致

c:父類靜態方法,子類也必須通過靜態方法進行重寫

其實這個算不上方法重寫,但是現象確實如此,至於為什麼算不上方法重寫,多型中(靜態只能覆蓋靜態)

子類重寫父類方法的時候,最好宣告一模一樣。

六、關鍵字finall

finall修飾類,類不能被繼承

修飾變數,變數就變成了常量,只能被賦值一次【這裡的變數是基本資料型別的】

變數是引用資料型別的,則位址符不可改變,其值是可以改變的

修飾方法,方法不能被重寫

class demo3_final 

}class demo

public void print()

}

物件導向之繼承

此段摘自 繼承方式限定了基類成員在派生類中的訪問許可權,包括 public 公有的 private 私有的 和 protected 受保護的 此項是可選的,如果不寫,預設為 private 或 protected。不要將繼承方式和成員屬性搞混了,不同的繼承方式會賦予繼承來的成員不同的屬性 簡單說一下...

物件導向之繼承

繼承 是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類 基類,超類 繼承描述的是一種遺傳關係,子類可以使用父類的屬性 注意 1 乙個類可以同時繼承多個父類 2 python中類分為兩種 新式類 繼承了object的類叫新式類,python3中所有的類都繼承了object類,即python3中...

物件導向之繼承

介紹 第一天的內容主要是不同情形下的方法過載。這一部分則主要講物件導向中繼承的概念。首先用乙個要點圖形來定義繼承。繼承 乙個簡單的例子 classa classclassa classb classb classclassb publicvoiddisplay2 classprogram 輸出結果 ...