? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 繼承
當(dāng)兩個對象特征和行為完全相同的時候,我們采用類創(chuàng)建不同的對象即可。
但是如果2個對象很相似但是不完全相同,這個時候,我們可以采用繼承的方式優(yōu)化類的定義。
一般相似的兩個類,一定會有一個從屬關(guān)系。
例如:動物類? ? 有性別? 能吃飯,能睡覺,能行走。
貓類? ? 有性別 命的條數(shù) 能吃飯,能睡覺,能行走,能賣萌
貓 is a 動物,貓是一個動物,但是不能反過來說 動物是個貓。(這里后續(xù)會引入介紹向上轉(zhuǎn)型,和向下轉(zhuǎn)型的定義)比較模糊的比較抽象往往是父類,比較具體的往往是子類。
父類也叫超類、基類、superclass。
子類是通過擴展父類延伸(派生)出來的,子類也叫派生類
?關(guān)于繼承:
????子類可以在父類的基礎(chǔ)上增加新的屬性和方法,子類還可以重寫(override)父類的方法。
子類能從父類那里繼承什么呢?
答:繼承了所有非private的屬性和方法。
????本質(zhì)上,私有的屬性和方法也繼承了,只不過不能直接訪問。
父類的構(gòu)造方法是繼承不了的!為什么呢?
?????因為構(gòu)造方的特點是:方法名必須與類名相同。但是你可以調(diào)用父類的構(gòu)造方法。
?調(diào)用父類的構(gòu)造方法使用super(),super(參數(shù)列表)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 重寫
何為重寫?為什么要重寫?
重寫字面意思就是重新寫,就像你上學(xué)時寫作業(yè)寫錯了一句話,然后重新寫一樣。
當(dāng)子類的需求,父類無法完全滿足或者父類的方法對于子類不夠滿意,這個時候,你可以對繼承過來的方法進行重寫,進而滿足對于子類的需求,進而對代碼進行你想要的實現(xiàn)的效果。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?封裝
封裝: 隱藏內(nèi)部細(xì)節(jié),對外提供訪問的接口
* (廣義的接口,這里的接口指的是提供訪問的方式)。
* 封裝包含以下幾個維度:
* 1、對屬性的封裝------setter和getter
* 具體做法,把屬性私有化 使用private修飾
* 提供setter和getter方法
* 對屬性封裝,能確保屬性的安全性。不容易出現(xiàn)臟數(shù)據(jù)
* 2、對行為(方法)的封裝
* 對具體功能實現(xiàn)的封裝。
* 隱藏實現(xiàn)細(xì)節(jié),對外提供調(diào)用方式。
* 具體做法,在類中定義一個public修飾方法
* 并且實現(xiàn)功能,使用的時候,通過對象名.方法就完成了功能的調(diào)用
* 3、對類的封裝
* 把屬性和行為封裝到類里。
* 使用的時候,創(chuàng)建對象,使用具體的功能。