簡體   English   中英

如何組織類接口的層次結構?

[英]How to organize class interfaces hierarchy?

由於您可以使用類接口進行多重繼承,因此您要遵循一些具體規則來創建和組織它們,例如,以避免接口重疊?

Java(至少Java 7之前)不支持多重實現繼承,僅支持多重接口繼承。 我猜您指的是這樣的情況:

public class Overlapping {

    interface A {
        void myMethod();
    }

    interface B {
        void myMethod();
    }

    static class C implements A, B {
        public void myMethod() {
            System.err.println("it works!");
        }
    }

    public static void main(String[] args) {
        new C().myMethod();
    }
}

這不是問題(有效!)。 如果API重疊,則僅合並。

是有關Java多重繼承的有用文章。

我認為您正在談論的是這樣的事情:

interface I1 {
   void methodName ();
}

interface I2 {
   void methodName (); //same method name
}

public Class MyClass implements I1, I2 {...}

我不知道針對這種情況的任何具體規則,因為它們很少見。 (與C#不同,此“使用”用例有一個構造(顯式接口實現))。

以我的拙見,這種情況現在而且應該非常罕見。 只是嘗試避免它( /像這樣保持它 )。 因此,這更多是學術上的,而不是實踐上的相關問題。

我遵循的一般規則是關注點分離 :每個接口都應該僅對一個精確的方面或功能建模,因此您可以繼承多個接口而不會出現重疊的問題。 您可能還需要閱讀此問題和相關答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM