如何使用设计模式在抽象类中定义抽象方法,而某些方法方法可以覆盖或更改它在子类中的行为?
在此示例中,public abstract class GameCharacter
具有方法attack
,它应该是模式(定义{{1}}中的一些方法,有些留空,要在子类中重写*)。
GameCharacter
答案 0 :(得分:2)
我想你想要的是这样的:
public abstract class GameCharacter{
protected abstract doAttackTwo();
protected final doAttackOne() { ... implement here ... }
...
}
doAttackTwo()
必须由子类实现,而doAttackOne()
不能被覆盖。
答案 1 :(得分:0)
如果将方法声明为final
,则无法在子类中重写该方法。当然,如果你没有给方法定义任何(具体的)子类必须实现它。