編輯:我的問題的簡單答案是,Java允許一個接口來擴展多個其他接口。這就是我如何在一個通用接口中將接口分組在一起的邏輯問題的答案。這個答案沒有出現在複製問題中。問題也不同,它不是創建接口組。如何將許多接口分組到一個通用的單一接口?
是否有原因在Java中,您不能將一個接口定義爲實現其他接口?我看到並且不滿意的答案是「接口本身不包含實現,那麼接口如何實現其他接口?」那麼,在我看來,這是一個弱的答案,因爲它更多的是對英語語義的點頭,而不是對場景的邏輯解釋。該場景的邏輯解釋是因爲我們可以定義類來實現許多接口,爲什麼我們不能定義一個本身代表一組接口的接口。
假設你有很多類,你想要每個類實現一個大的,通用的許多接口。就目前而言,你必須明確寫出每個班級的名單。這意味着如果以後你不得不添加另一個接口到你的許多列表中,你將不得不修改每個類。將所有界面整合到一個「超級界面」中,程序員只能在一個地方進行更改。
在你回答「make一個實現接口列表的抽象超類,並讓所有的子類擴展該超類」之前,請記住,你不能假定這些類不能擴展類。 implements關鍵字的一個好處是你可以在不改變分類的情況下調整一個類,對嗎?
我想長話短說:爲什麼程序員不能定義只是其他接口組的接口?或者,也許更好的問題是:如果我無法將接口定義爲實現其他接口,那麼我可以如何定義其他接口組的接口?
對於那些你喜歡的代碼,我要問的是,爲什麼不是做這個...
public class Foo extends ParentClass1 implements IBar1, IBar2, IBar3{
}
public class Baz extends ParentClass2 implements IBar1, IBar2, IBar3{
}
......那豈不是更有意義的Java允許這樣:
public interface IAllBar implements IBar1, IBar2, IBar3{
}
public class Foo extends ParentClass1 implements IAllBar{
}
public class Baz extends ParentClass2 implements IAllBar{
}
這樣,後來,如果我創建IBar4,我只需修改IAllBar.java而不是Foo.java和Baz.java。
編輯:所以根據下面的答案,我可以定義IAllBar EXTEND所有這些接口,我會得到我想要的。我很高興有人願意閱讀整篇文章,然後跳到底部發布平均回覆。
舊的問題有足夠的答案。 – DevZer0
這是今天的第三個問題,聽起來像「我已閱讀過文檔,並且清楚地指出,有些編程語言不支持我需要的功能,爲什麼生活對我來說太殘酷了?」。這是問答網站,不是論壇。 –
這不是重複的。網站準則說,如果現有問題的答案不正確或令人滿意,我可能會問一個問題。 – user2522434