强制继承类来定义某些方法

时间:2010-11-16 20:00:04

标签: java inheritance polymorphism abstract-class

我确信我记得有一种方法可以使超类的任何子类定义某些方法。我该怎么做?

在我的示例中,超类是Account(并且是抽象的),子类是SavingsAccount和CurrentAccount。所有子类都必须实现自己的withdraw()方法。

5 个答案:

答案 0 :(得分:7)

在抽象类中定义此方法。

public abstract <returnType> withdraw();

然后,任何扩展抽象类的类都将被强制实现withdraw方法。

答案 1 :(得分:3)

public abstract void withdraw();放入帐户。

答案 2 :(得分:1)

如果SavingAccount和CurrentAccount彼此不了解并且每个都扩展了帐户,那么您只需在帐户类中提及:

public abstract <return type> withdraw();

因此派生类(如果它们不是抽象的)应该实现此方法。

答案 3 :(得分:1)

如果Account class已经abstract。您可以添加名为abstract的{​​{1}}方法,例如:

withdraw()

这将强制CurrentAccount和SavingsAccount覆盖withdraw()。

您对抽象类的好处是允许您添加子类(CurrentAccount,SavingsAccount)可以调用的方法(到Account)。

这对于避免两次编写相同的代码非常有帮助。

此方案适用于您的工厂模式。

答案 4 :(得分:0)

如果您将Account类和方法声明为abstract,那么如果您没有在扩展Account类的子类中实现抽象方法,则编译器会给您一个错误。