Java:强制子类覆盖超类的方法

13

我该如何编写一个方法,并强制子类覆盖这个方法?在Eclipse中,它应该在快速修复对话框中显示为:“添加未实现的方法”。

谢谢。

5个回答

23

如何编写一个方法并强制子类覆盖该方法。

将该方法声明为抽象的(abstract)

enter image description here

Eclipse会对所有未实现的抽象方法和接口方法提供“添加未实现方法”的选项,以便子类实现。


一个带有抽象方法的类无法被实例化(只能通过它的子类来实例化)。 - Mark Jeronimus
当子类被实例化时,抽象类也会被实例化。 - aioobe
我的意思是我有基类和子类的实例,两者都需要一个方法的实际实现,但是必须强制子类覆盖基类的实现。 - Mark Jeronimus
@MarkJeronimus,你的意思是说你在基类中有一个实现,但仍希望要求子类实现(覆盖)该方法吗? - aioobe
是的。虽然我最终选择制作一个单独的基类,而不是多态连接。 - Mark Jeronimus

8

只需在基类中将方法声明为抽象方法,则所有子类都将被强制实现它。或者你也可以使用接口而不是具体类,这仅仅是一个定义了必须实现的方法的协议。两种方法都可以,具体取决于你的需求。


4
你可以通过将方法设为abstract(不提供默认实现)来实现该功能。

3

如果您不想让您的类成为抽象类,您可以在您希望强制覆盖的方法上抛出自己的MustOverrideException异常。


2

声明方法为抽象


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接