デザインパターンを使用して抽象クラスで抽象メソッドを定義する方法と、メソッドの一部のメソッドで子クラスでの動作をオーバーライドまたは変更する方法はありますか?この例でpublic abstract class GameCharacter
は、attack
パターンのようなメソッドを用意します(GameCharacter
子クラスで*オーバーライド*されるように、のメソッドの一部と空のままにするメソッドの一部を定義します)。
public abstract class GameCharacter{
public void attack(GameCharacter opponent){
while(opponent.hitPoints > 0 && this.hitPoints > 0){
// some abstract method which behavior can be *redefined*
//if specific class is *overrides*
// some of this functions
// it should be pattern design
public void doDamageToOpponent{
doAttackOne(){ .... }; // cannot change
doAttackTwo(); // can change, be overridden in child class
}
public void doDamageToThis{ // counterattack
doAttackOne(){ .... }; // cannot change
doAttackTwo(); // can change, be overriden in child class
}
}