シナリオは次のとおりです-> 3つのクラスがあると想像してください。次のようなことをしたいです:
public class GameObject {
public void updateBounds() {
// do something
}
}
public abstract class Enemy extends GameObject {
public abstract void updatePosition(){ //<-- this will not compile,
//but this is what i want to do, to force
//child to override parent method
updateBounds();
}
}
public class Minion extends Enemy {
@Override
public void updatePosition() {
super.updatePosition(); // <-- how do i throw an exception if this line
// is not called within this method of the
// child?
// now do something extra that only Minion knows how to do
}
}
- Enemy クラスをどのように設計して、何かを行うメソッドを持つようにしますが、すべての子がそれをオーバーライドする必要がありますか?
- 子 (メソッドをオーバーライドしなければならなかった) に親のメソッドも呼び出すように強制するにはどうすればよいですか?
Activity
これは、onCreate、onStart、onResume などを持つAndroid のクラスにほとんど似 ています。オプションのメソッドですが、それを利用する場合は、super を呼び出す必要があります。メソッドが呼び出されたときにいくつかのコードを実行する必要があるため、抽象化することはできません(これは親クラスのメソッドのみにあります)。彼らがこのようにした方法を知っていれば、ボーナスポイントはありますか?