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