java - 继承隐藏方法

标签 java oop inheritance method-hiding

我有一个有 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/

相关文章:

java - 添加项目后 ListView 不会滚动到底部

python - 根据参数选择子类

java - 如何以模块化方式对游戏对象渲染和行为进行建模?

iphone - 在 Xcode 中如何抑制 "incomplete implementation"?(继承)

c++ - 从模板化父类访问继承变量

java - 如何使用正则表达式来匹配该字符串中的 "aas"?

java - 使用 ThreeTenABP 时如何将 Date 转换为 LocalDate?

包含任何类型的模板类对象的 C++ 映射

java - GSON 创建对象数组

c++ - 使用类c++的登录系统