如果我扩展一个实现接口的抽象 class,我是否需要重写方法?

If I extend an abstract class, that is implementing an interface, do I need to rewrite the methods?

我有一个包含多种方法的接口。然后我有一个抽象 class 定义了其中一些方法,但也留下了一些抽象方法。现在我有一个扩展摘要 class 的 class。是不是需要把原来接口的所有方法都写出来定义,还是java知道有的已经被抽象实现了class?

必须实现接口方法。如果抽象 class 已经实现了其中的一些,您可以自由地在子 class 中覆盖它们。

在您编写实现接口 and/or 的具体(非抽象)class 从抽象基础 class 派生时,具体 class必须为它指定的每个方法提供一个实现。指定的意思是通过在基础 class 中声明 abstract,或者由 class 或其基础之一 classes 声明它要实现的接口指定。

如果您编写实现接口 and/or 的抽象 class 是从抽象基础 class 派生的,则您的新 class 不需要提供任何实现它被指定为具有的方法;那些剩余的方法被你的新 class.

显式或隐式地视为被声明为 abstract

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