假设我有一个名为 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/