Class 子类是否需要实现接口?

Class 子类是否需要实现接口?,class,inheritance,interface,Class,Inheritance,Interface,这更像是一个理解问题。我有一个名为InterExe1的接口,它有两个方法-print1(),print2()。 这个接口是由一个超级类工作者实现的 public class Worker implements InterExe1 然后我还有两个子类继承自Worker类,并实现了接口 Public class DayWorker extends Worker implements InterExe1 Public class nightWorker extends Worker impleme

这更像是一个理解问题。我有一个名为InterExe1的接口,它有两个方法-print1(),print2()。 这个接口是由一个超级类工作者实现的

 public class Worker implements InterExe1
然后我还有两个子类继承自Worker类,并实现了接口

Public class DayWorker extends Worker implements InterExe1
Public class nightWorker extends Worker implements InterExe1

如果接口已经通过超类实现了,我是否也需要通过子类单独实现它,因为我编写了子类来实现它?我不确定,因为从技术上讲,它们继承了Worker中的所有方法,而Worker实现了接口,如果我在子类中编写它们实现了接口,是否真的会有区别?如果我不编写接口,区别是什么?我尝试创建这些类,当我没有实现Worker类时,它在运行它之前显示了一个错误编译错误,但是它仍然不需要我实现子类,尽管它们没有接口的实现。你知道为什么吗?当我只实现超级类时,它没有显示任何错误。如果你能帮助我今天对它进行测试,我将非常感激,我需要理解逻辑

您不需要在子类(
派生的
类)中实现它

派生类继承基类的所有实现,并可以覆盖任何虚拟实现。

  • 如果接口已经通过超类实现了,我是否也需要通过子类单独实现它,因为我编写了子类来实现它

    • 没有
  • 我不确定,因为从技术上讲,它们继承了Worker中的所有方法,而Worker实现了接口,如果我在子类中编写它们实现了接口,是否真的会有区别?如果我不编写接口,区别是什么

    • 不,除了它是多余的
  • 我尝试创建这些类,当我没有实现Worker类时,它在运行它之前显示了一个错误编译错误,但是它仍然不需要我实现子类,尽管它们没有接口的实现。你知道为什么吗

    • 如果一个类实现了一个接口,那么它必须实现所有的方法。若您已经在
      Worker
      中实现了,那个么您的子类将从父类继承这些方法
老实说,试试IntelliJ社区版,你可以很容易地看到答案

根据有效的Java,我相信您的
工作者
应该是一个抽象类。你会发现它非常有用