歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java中的內部接口

Java中的內部接口

日期:2017/3/1 9:14:46   编辑:Linux編程

什麼是內部接口

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

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

為什麼要使用內部接口

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

一種對那些在同一個地方使用的接口進行邏輯上分組;

封裝思想的體現;

嵌套接口可以增強代碼的易讀性和可維護性;

在Java標准庫中使用內部接口的一個例子是java.util.Map和Java.util.Map.Entry。這裡java.util.Map同樣被當成命名空間使用。Entry並不屬於全局作用域范圍,which means there are many other entities that are Entries and are not necessary Map’s entries. This indicates that Entry represents entries related to the Map。

內部類如何工作

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

因為接口是不能實例化的,內部接口只有當它是靜態的才有意義。因此,默認情況下,內部接口是靜態的,不能你是否手動加了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/

Copyright © Linux教程網 All Rights Reserved