Posted on 2006-06-24 23:08
hays(海納百川) 閱讀(354)
評(píng)論(0) 編輯 收藏
((MyClas)ac).
**
();
??????這2個(gè)星期比較緊張,要做課程設(shè)計(jì),也沒(méi)多少時(shí)間來(lái)看書(shū),不過(guò)還是把接口和流這兩張勉強(qiáng)的給讀完了,了解的不深,在下面寫(xiě)點(diǎn)總結(jié)。
????????接口,實(shí)際上是一組相關(guān)的常量和抽象方法(應(yīng)該就是只有定義沒(méi)有實(shí)現(xiàn)的方法).JAVA中沒(méi)有多繼承,也就是說(shuō)JAVA不支持一個(gè)類繼承多個(gè)父類。接口的出現(xiàn)正好凝補(bǔ)了這一缺陷,可以通過(guò)實(shí)現(xiàn)多接口來(lái)完成多繼承的任務(wù)。
?????????看完這章接口,其實(shí)也就學(xué)到了一點(diǎn),就是用接口來(lái)實(shí)現(xiàn)多態(tài)!(以前沒(méi)看到過(guò),失敗!) 平常我們都是用繼承基類的方法來(lái)實(shí)現(xiàn)多態(tài),用接口來(lái)代替基類來(lái)實(shí)現(xiàn)多態(tài)有什么好處呢?
接口繼承多態(tài)仍然有它獨(dú)特的用處,當(dāng)一個(gè)對(duì)象需要擁有不同的身份時(shí),接口繼承就給了你一種實(shí)現(xiàn)的方式。例如String的聲明如下:
public?sealed?class?String?:?IComparable,?ICloneable,?IConvertible,?IEnumerable,?IComparable<string>??????其次如果一個(gè)類實(shí)現(xiàn)了多個(gè)接口的話,那么為了調(diào)用在第二個(gè)接口的方法,就要用對(duì)應(yīng)的接口類型來(lái)存儲(chǔ)對(duì)象的的引用,或者進(jìn)行類型的強(qiáng)制轉(zhuǎn)換,例如:
.
public??MyClass?implements?RemotoControl,AbsoluteControl


{
}


這里 可以將MyClass對(duì)象的引用存儲(chǔ)在兩個(gè)接口類型之一。例如:
RemotoControl?ar?=?new?MyClass();可是ar只能調(diào)用屬于實(shí)現(xiàn)了RemotoControl的方法,AbsoluteControl接口中的方法沒(méi)法調(diào)用,這時(shí)可以強(qiáng)制類型轉(zhuǎn)換了:
((MyClass)ar).方法