在模式设计风格中使用抽象方法定义抽象类

时间:2012-04-15 12:39:35

标签: java oop abstract-class abstract-methods

如何使用设计模式在抽象类中定义抽象方法,而某些方法方法可以覆盖或更改它在子类中的行为? 在此示例中,public abstract class GameCharacter具有方法attack,它应该是模式(定义{{​​1}}中的一些方法,有些留空,要在子类中重写*)。

GameCharacter

2 个答案:

答案 0 :(得分:2)

我想你想要的是这样的:

public abstract class GameCharacter{

    protected abstract doAttackTwo();

    protected final doAttackOne() { ... implement here ... }

    ...
}

doAttackTwo()必须由子类实现,而doAttackOne()不能被覆盖。

答案 1 :(得分:0)

如果将方法声明为final,则无法在子类中重写该方法。当然,如果你没有给方法定义任何(具体的)子类必须实现它。