面向?qū)ο?之 多態(tài)

做個(gè)老實(shí)人哈哈!

多態(tài)思想

1. 接口(了解)

接口是一種約定規(guī)范,是多個(gè)抽象方法的集合。僅僅只是定義了應(yīng)該有哪些功能,本身不實(shí)現(xiàn)功能,

至于每個(gè)功能具體怎么實(shí)現(xiàn),就交給實(shí)現(xiàn)類完成。

接口中的方法是抽象方法,并不提供功能實(shí)現(xiàn),體現(xiàn)了規(guī)范和實(shí)現(xiàn)相分離的思想,也體現(xiàn)了組件之間

低耦合的思想。

所謂耦合度,表示組件之間的依賴關(guān)系。依賴關(guān)系越多,耦合性越強(qiáng),同時(shí)表明組件的獨(dú)立性越差,

在開發(fā)中往往提倡降低耦合性,可提高其組件獨(dú)立性

接口也體現(xiàn)的是這種低耦合思想,接口僅僅提供方法的定義,卻不提供方法的代碼實(shí)現(xiàn)。那么得專門

提供類并去實(shí)現(xiàn)接口,再覆蓋接口中的方法,最后實(shí)現(xiàn)方法的功能.( 有接口不實(shí)現(xiàn) , 根本就是沒有意義的 , 就相當(dāng)于 你有想法,卻沒有去實(shí)行 , 沒有去努力 , 那么這樣不就是在 空想而已嗎 , 有何意義 ! )

那么 定義 接口 不就是 說出你的想法 嗎 ??? 實(shí)現(xiàn)接口 不就是 去努力將其做成功 嗎 ???

多態(tài)是面向?qū)ο笕筇卣鳎悍庋b、繼承、多態(tài) 之一 。

當(dāng)編譯類型和運(yùn)行類型不一致的時(shí)候,此時(shí)多態(tài)就產(chǎn)生了

注意:編譯類型必須是運(yùn)行類型的父類或接口。

所謂多態(tài),表示一個(gè)對(duì)象具有多種形態(tài)。

多態(tài)的前提,可以是繼承關(guān)系(類和類),也可以是實(shí)現(xiàn)關(guān)系(接口和實(shí)現(xiàn)類),在開發(fā)中,一般都

指接口和實(shí)現(xiàn)類之間的關(guān)系,什么是多態(tài)?

一言以蔽之:父類引用變量指向于子類對(duì)象,調(diào)用方法時(shí)實(shí)際調(diào)用的是子類的方法。

多態(tài)操作有兩種定義格式和操作語法

? 操作繼承關(guān)系(開發(fā)中不是很多): 

父類 變量名 = new 子類(); 

變量名.方法(); 

? 操作實(shí)現(xiàn)關(guān)系(開發(fā)中最頻繁): 

接口 變量名 = new 實(shí)現(xiàn)類(); 

變量名.方法();

(重點(diǎn))多態(tài)時(shí)方法調(diào)用問題

image-20200602110553715.png

過程 :

先 在父類中 找shout方法 ,

找不到:編譯報(bào)錯(cuò) , 找 到:再看 shout 方法是否在子類 Cat 類中:

? 找不到:運(yùn)行父類方法

? 找 到:運(yùn)行子類方法(這個(gè)才是真正的多態(tài)方法調(diào)用)

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

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