一、何為繼承?
繼承(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 輸出結果 ...