review06
使用關(guān)鍵字interface來定義一個接口。接口的定義和類定義很相似,分為接口聲明和接口體。
接口體中包含常量的聲明(沒有變量)和抽象方法兩部分。接口中只有抽象方法,沒有普通方法。而且接口體中所有的常量的訪問權(quán)限一定都是public,而且是static常量,所有抽象方法的訪問權(quán)限一定都是public(允許省略public abstract修飾符)。接口中的常量一定是public final static修飾的。
在java語言中,接口由類來實現(xiàn)以便使用接口中的方法。如果一個非抽象類實現(xiàn)了某個接口,那么這個類必須重寫這個接口中的所有方法。由于接口中的方法一定是public abstract方法,所以類在重寫接口方法時不僅要去掉abstract修飾符、給出方法體,而且方法的訪問權(quán)限一定要明顯地用public來修飾(否則會降低訪問權(quán)限)。
程序可以用接口名訪問接口中的常量,但是如果一個類實現(xiàn)了接口,那么該類可以直接在類體中使用該接口中的常量。
定義接口時,如果關(guān)鍵字interface前面加上public,就稱這樣的接口是一個public接口。public接口可以被任何一個類實現(xiàn)。如果一個接口不加public修飾,就稱做友好接口,友好接口可以被與該接口在同一包中的類實現(xiàn)。
如果父類實現(xiàn)了某個接口,那么子類自然實現(xiàn)了該接口。
接口也支持繼承,支持多繼承,類可以同時實現(xiàn)多個接口。
接口的思想在于它可以要求某些類有相同名稱的方法,但方法的具體內(nèi)容可以不同,即要求這些類實現(xiàn)接口,以保證這些類一定有接口中所聲明的方法。
接口回調(diào)
和類一樣,接口也是java中一種重要數(shù)據(jù)類型,用接口聲明的變量稱作接口變量。
在java中,接口回調(diào)是指:可以把實現(xiàn)某一接口的類創(chuàng)建的對象的引用賦值給該接口聲明的接口變量,那么該接口變量就可以調(diào)用被類實現(xiàn)的接口方法。
接口回調(diào)非常類似于上轉(zhuǎn)型對象調(diào)用子類重寫的方法。接口回調(diào)和上轉(zhuǎn)型對象是多態(tài)的體現(xiàn)。由接口產(chǎn)生的多態(tài)就是指不同的類在實現(xiàn)同一個接口時可能具有不同的實現(xiàn)方式,那么接口變量在回調(diào)接口方法時就可能具有多種形態(tài)。
如果某個問題不需要繼承,只是需要若干個類給出某些重要的abstract方法的實現(xiàn)細(xì)節(jié),可以考慮使用接口。
面向接口編程
使用接口進(jìn)行程序設(shè)計的核心思想是使用接口回調(diào),即接口變量存放實現(xiàn)該接口的類的對象的引用。
?
轉(zhuǎn)載于:https://www.cnblogs.com/liaoxiaolao/p/9254587.html
總結(jié)
- 上一篇: BZOJ2876 [Noi2012]骑行
- 下一篇: IO流与NIO流