如何强制在java中重写方法?

时间:2010-11-17 11:39:01

标签: java

我必须创建许多非常相似的类,它们之间只有一种方法不同。所以我认为创建抽象类是实现这一目标的好方法。但是我想要覆盖的方法(例如,方法foo())没有默认行为。我不想保留任何默认实现,强制所有扩展类实现此方法。我该怎么做?

5 个答案:

答案 0 :(得分:77)

您的基类需要抽象方法:

public abstract class BaseClass {
    public abstract void foo();
}

这样,您不指定默认行为,强制从BaseClass继承的非抽象类指定foo的实现。

答案 1 :(得分:11)

只需将foo()定义为基类中的抽象方法:

public abstract class Bar {
   abstract void foo();
}

有关详细信息,请参阅The Java™ Tutorials (Interfaces and Inheritance)

答案 2 :(得分:9)

只需将方法抽象化即可。

这将强制所有子类实现它,即使它是在抽象类的超类中实现的。

public abstract void foo();

答案 3 :(得分:5)

如果你有一个抽象类,那么制作你的方法(让我们说foo也是抽象的)

public abstract void foo();

然后所有子类都必须覆盖foo

答案 4 :(得分:4)

制作此方法abstract