繼承和重寫,封裝

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 繼承

當(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)建對象,使用具體的功能。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容