我想要interace A.哪種類型的對象可以生成類型A的其他對象。 我需要類型B的相同行爲。在我的應用程序中, B是也A.所以,我想B到從A.在覆蓋期間將返回類型更改爲派生類型
得出這是我的嘗試:
public interface A {
A method1();
}
public interface B : A {
overrride B method1();
void otherMethod();
}
注意override關鍵字不到風度編譯這裏。使項目編譯的唯一方法是使界面B1如下所示:
public interface B : A {
//A method1(); /* commented out because it is inherired */
void otherMethod();
}
但是我想通過界面B1承諾,這種類型的對象有法生產型B.
的其他對象接口B的實現可能看起來像:
class Foo : B {
B metod1();
}
,我想B metod1()
是的B method1()
implemantation接口B,我也希望同樣的方法是實施A method1()
.我期望在實現接口B的所有類中都有相同的行爲。所以我不希望每次兩次爲兩個接口實現method1。
我在接口的c#中這樣做。但是我相信類似的問題甚至可能在類中也可能在Java中也很有趣。
哇。這幾乎是我需要的。我可以讓B的例子表現得非常好。但是,我怎麼能聲明A型的變量,其中T是A 而不是它的後代?這個變量的類型是A >>嵌套無限多次。 –
在首次編輯更多內容之前,我很喜歡原始答案。我知道新的關鍵字,這不是我所需要的。我想要實現一個接口的類僅實現一次method1! –
對第一條評論抱歉。我用你的答案的前半部分。而對於我需要A而沒有任何後代的情況,我創建了非通用'公共接口A:A {}',現在一切都起到了奇蹟般的作用。 –