如何组织类接口层次结构?

时间:2011-04-21 07:13:21

标签: java .net frameworks

由于您可以使用类接口进行多重继承,您是否遵循一些具体规则来创建和组织它们以避免接口重叠?

3 个答案:

答案 0 :(得分:4)

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重叠,它就会合并。

Here是一篇关于Java中多重继承的有用文章。

答案 1 :(得分:1)

我认为你在谈论这样的事情:

interface I1 {
   void methodName ();
}

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

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

对于这种情况,我不知道任何具体规则,因为它们非常罕见。 (不像在C#中,这个“use”-case)有一个构造(显式接口实现)。

以我的拙见,这个案子是非常罕见的。试着避免它( /像这样)。所以它更像是一个学术问题,而不是实践相关的问题。

答案 2 :(得分:1)

我遵循的一般规则是Separation of Concerns:每个接口只应建模一个精确的方面或功能,因此您可以继承多个接口而不会出现重叠问题。您可能还想阅读此question及相关答案。