我搜索了谷歌,但找不到一個具體的例子,清除了我的懷疑。假設我有一個嵌套接口的父接口。當實現父接口聲明一個嵌套接口時會發生什麼
E.g
public interface A {
.. methods
interface B {
.. methods
}
}
如果一個類實現了接口A,會發生什麼情況,是否在內部類實現嵌套的界面B2以及,這意味着我應該重寫接口B的方法嗎?
我搜索了谷歌,但找不到一個具體的例子,清除了我的懷疑。假設我有一個嵌套接口的父接口。當實現父接口聲明一個嵌套接口時會發生什麼
E.g
public interface A {
.. methods
interface B {
.. methods
}
}
如果一個類實現了接口A,會發生什麼情況,是否在內部類實現嵌套的界面B2以及,這意味着我應該重寫接口B的方法嗎?
編號 必須實施內部接口。如果你只實現,你的罰款,只有聲明的方法,無需接口B方法
語法將
Class C implements A, A.B{
// add methods here
}
。
嘿謝謝,救了我從一個混亂的情況。 –
我不會說「內部接口必須實現」,而是「如果你想使用內部接口,你需要自己實現它。」因爲你可以獨立使用這兩個接口。 – Jhonny007
@ Jhonny007 - 注意!謝謝 :) –
由於接口沒有實現方法,所以當外部接口實現時,不需要實現嵌套接口。
內部接口更像是位於外部接口名稱空間中的接口。
綜上所述:接口與彼此沒有任何關係,您可以處理它們,因爲您可以使用兩個獨立的接口。唯一的關係是你只能通過調用A.instanceofB.method();
來使用接口B.
接口:
interface OuterInterface {
String getHello();
interface InnerInterface {
String getWorld();
}
}
實施例:
static class OuterInterfaceImpl implements OuterInterface {
public String getHello() { return "Hello";}
}
public static void main(String args[]) {
new OuterInterfaceImpl().getHello(); // no problem here
}
實施例2:
static class InnterInterfaceImpl implements OuterInterface.InnerInterface {
public String getWorld() { return "World";}
}
public static void main(String args[]) {
new InnerInterfaceImpl().getWorld(); // no problem here
}
實施例3:
static class OuterInterfaceImpl implements OuterInterface {
public String getHello() { return "Hello"; }
static class InnerInterfaceImpl implements InnerInterface {
public String getWorld() { return "World!"; }
}
}
public static void main(String[] args) {
OuterInterface oi = new OuterInterfaceImpl();
OuterInterface.InnerInterface ii = new OuterInterfaceImpl.InnerInterfaceImpl();
System.out.println(oi.getHello() + " " + ii.getWorld());
}
基本上,在一個接口中,除了方法聲明以外的任何東西都是公共靜態的。任何靜態的東西都不能被繼承。所以,一個嵌套的接口必須分開實施。
你可以通過在嵌套接口中聲明一個方法來試試:) – TheLostMind
@TheLostMind - 嘿,謝謝,這裏的問題是我需要一個快速的答案,目前我也沒有資源在實際中嘗試這個問題。如果萬一,我反正會嘗試使用代碼,一旦我到達家裏。謝謝 –