Java中的內部接口


什么是內部接口

內部接口也稱為嵌套接口,即在一個接口內部定義另一個接口。舉個例子,Entry接口定義在Map接口里面,如下代碼:

public interface Map {
    interface Entry{
        int getKey();
    }
    void clear();
}

為什么要使用內部接口

如下是一些強有力的理由:

  • 一種對那些在同一個地方使用的接口進行邏輯上分組;
  • 封裝思想的體現;
  • 嵌套接口可以增強代碼的易讀性和可維護性;

在Java標准庫中使用內部接口的一個例子是java.util.Map和Java.util.Map.Entry。這里java.util.Map同樣被當成命名空間使用。Entry並不屬於全局作用域范圍.

內部類如何工作

為了弄清楚內部接口是如何工作的,我們可以拿它與內部類作比較。內部類可以被認為是一個外部類內部定義的一個常規方法。因為一個方法可以被聲明為靜態和非靜態,類似的內部類也可以被聲明為靜態和非靜態。靜態類類似於靜態方法,它只能訪問外部類的靜態成員屬性。非靜態方法可以訪問外部類的所有成員屬性。

因為接口是不能實例化的,內部接口只有當它是靜態的才有意義。因此,默認情況下,內部接口是靜態的,不能你是否手動加了static關鍵字。

內部接口例子

Map.java

public interface Map {
    interface Entry{
        int getKey();
    }
    void clear();
}

MapImpl.java

public class MapImpl implements Map {
    class ImplEntry implements Map.Entry{
        public int getKey() {
            return 0;
        }
    }
    @Override
    public void clear() {
        //clear
    }
}

譯文鏈接

http://www.programcreek.com/2013/08/inner-interface-in-java/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM