我有一个有 4 个方法的接口(interface)和一个实现该接口(interface)的类。问题来了:“我怎样才能从接口(interface)继承其中的两个方法,并且我的类不会变成抽象的?”
interface Class1 {
void method1();
void method2();
void method3();
void method4();
}
public class Class2 implements Class1 {
@Override
public void method1() {
}
@Override
public void method2() {
}
}
最佳答案
你必须变得狡猾,你必须查找为什么它有效,特别是如果这是一个面试问题。它基本上是为了兼容性(接口(interface)中的默认方法),并且需要 Java 8。
public interface One {
void method1();
void method2();
void method3();
void method4();
}
public interface Two extends One{
default void method1(){}
default void method2(){}
}
public class Three implements Two{
@Override
public void method3() {}
@Override
public void method4() {}
}
非抽象Three.class实现了One.class的method3和method4,没有为method1和method2定义方法体。 Method1 和 Method2 在接口(interface) Two.class 中使用默认实现进行定义。
关于java - 继承隐藏方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930231/