做個(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)用問題

過程 :
先 在父類中 找shout方法 ,
找不到:編譯報(bào)錯(cuò) , 找 到:再看 shout 方法是否在子類 Cat 類中:
? 找不到:運(yùn)行父類方法
? 找 到:運(yùn)行子類方法(這個(gè)才是真正的多態(tài)方法調(diào)用)