Java多接口实现

时间:2018-10-15 16:32:54

标签: java interface abstract-class

设置是这样的。
我有多个接口(即A,B,C),并且有类(Z和Y)来实现它们
X实现A,B {} Y实现A,C {} Z实现B,C {}

接口A,B,C中的某些函数具有相同的定义,并且我不想在每个类中都重新键入它们,该怎么办?
我在Google上进行了搜索,并注意到一种解决方案是在界面中使用方便的关键字默认。但是,如果我被禁止使用此关键字,例如代码与Java8之前的版本兼容,该怎么办?

有没有更好的方法来解决此问题?

2 个答案:

答案 0 :(得分:1)

您可以favor composition并采用一个类来实现要重用的方法作为参数,而不是通过继承来获取这些方法,而不必扩展多个类来获取您的定义。将其保留为私有的final成员变量,您可以以通用方式调用此通用方法。

答案 1 :(得分:0)

然后,您应该使用抽象类,并为以下不同接口中的通用方法提供一些默认实现。

interface A {
    void m1();
    void common();
}

interface B {
    void m2();
    void common();
}

abstract class ABClass implements A, B {

    public void common() {
    System.out.println("Default");
}

Class X extends ABClass {
}