Java 如果我扩展了一个抽象类,即实现了一个接口,我是否需要重写这些方法?

Java 如果我扩展了一个抽象类,即实现了一个接口,我是否需要重写这些方法?,java,interface,abstract-class,implementation,Java,Interface,Abstract Class,Implementation,我有几个方法的接口。然后我有了一个抽象类,它定义了其中一些方法,但也保留了一些抽象的方法。现在我有了一个扩展抽象类的类。我是否需要从原始接口编写所有方法并定义它们,或者java是否知道其中一些方法已由抽象类实现?必须实现接口方法。如果抽象类已经实现了其中的一些,您可以在子类中重写它们,也可以不重写它们。在您编写实现接口和/或从抽象基类派生的具体(非抽象)类时,该具体类必须为其指定的每个方法提供实现。指定是指通过在基类中声明抽象,或由类或其基类之一声明要实现的接口指定 如果您编写了一个实现接口和/

我有几个方法的接口。然后我有了一个抽象类,它定义了其中一些方法,但也保留了一些抽象的方法。现在我有了一个扩展抽象类的类。我是否需要从原始接口编写所有方法并定义它们,或者java是否知道其中一些方法已由抽象类实现?

必须实现接口方法。如果抽象类已经实现了其中的一些,您可以在子类中重写它们,也可以不重写它们。

在您编写实现接口和/或从抽象基类派生的具体(非抽象)类时,该具体类必须为其指定的每个方法提供实现。指定是指通过在基类中声明
抽象
,或由类或其基类之一声明要实现的接口指定


如果您编写了一个实现接口和/或从抽象基类派生的抽象类,那么您的新类不需要为其指定的任何方法提供实现;剩下的那些方法被显式或隐式地认为是由新类声明的
抽象的

在接口中,您声明了一些方法(),不应该有实际的实现。 当您将接口实现到一个抽象类中时,这些方法的声明将出现在该抽象类中。由您决定是否在此处定义方法。
当您在具体类(将用于创建对象的类)中扩展这些方法时,每个方法都需要定义,因为如果您已经在抽象类中定义了一些方法,则无需再次进行定义,但您可以这样做。

是什么阻止您对其进行测试?还有,您认为Java应该如何应对这种情况?为什么不试着让我们知道?答案是不,您不需要,但检查时间不会太长。我建议您删除这个问题。抽象类有这个目的,您可以定义将由子类继承的方法。Java还为您提供了重写抽象类中实现的方法的机会,因此这取决于您。Java无所不知。注意,如果您使用的是Java8,那么可以在接口声明中为方法提供一个
默认
实现。在这种情况下,您不需要实现该方法,除非默认的imp不适合您。@Finlay不用费心说“谢谢”。将鼠标悬停在收到的答案左侧的向上箭头和向下箭头按钮上。阅读页面随后显示的工具提示。然后问自己是否要单击这些按钮。对不起,我尝试单击“接受答案”,但它说我必须等待几分钟。刚刚回来做那件事。