java - 修改接口(interface)的多个类,一个设计问题

标签 java inheritance software-design

假设我有一个名为 Parent 的接口(interface)

interface Parent{

void methodOne();
}

这个接口(interface)在 10 个不同的子类中实现,比如说

class Child1 implements Parent{
void methodOne();
}

class Child2 implements Parent{
void methodOne();
}
:
:
class Child10 implements Parent{
void methodOne();
}

我们如何向 Parent 接口(interface)添加新方法而不破坏其他 10 个类。

interface Parent{

void methodOne();
void methodtwo();
}

我知道在 Java 8 中我们可以添加默认方法,但是在 Java 8 之前还有其他方法可以做到这一点

最佳答案

如果没有默认实现,您就无法向接口(interface)添加方法,而不必在每个实现类中实现它。解决方法是让您的类扩展一个抽象类,该抽象类又实现该接口(interface)。你会得到这样的东西:

public interface Parent {
    public void methodOne();
}

public abstract class AbstractChild implements Parent {
    //literally, leave blank
}

public class Child1 extends AbstractChild {
    public void methodOne() {
        //implementation goes here
    }
}

....

现在,如果您想向接口(interface)添加新方法,您可以在 AbstractChild 中实现它们 - 并且不需要触及所有 ChildX 类。

关于java - 修改接口(interface)的多个类,一个设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463949/

相关文章:

java - NetBeans IDE 8.0.2 输出窗口

c++ - 私有(private) getter 和 setter

C++ 11 智能指针所有权和转换

java - Click 中的 JButton 表单

java - 是否可以查看对象图 JAXB 分析?

java - JSON数据解析到Android App

java - 将 HashMap 插入 HashMap ?

postgresql - 慢触发器使用 postgresql 检查主键约束

java - 我需要声明一个可绘制变量吗?

javascript - JavaScript 中基于构造函数的继承