を持つ親メソッドをオーバーライドするために子供を強制するにはここでのシナリオです - >私は一種のような何かをしたい、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
}
}
- どのように設計します敵のクラスで何かをするメソッドを持つようにしますが、すべての子がそれをオーバーライドする必要がありますか?
- 親のメソッドを呼び出すために、子を強制的に(メソッドをオーバーライドしなければならない)強制しますか?
これは、onCreate、onStart、onResume ...などを持つAndroidのActivity
クラスとほぼ同じです。メソッドはオプションですが、それを使用すると、スーパーメソッドを呼び出す必要があります。メソッドが呼び出されたときに(親クラスのメソッドでのみ)いくつかのコードを実行したいので抽象化できません。彼らがどうやってこのようにしたか知っていればボーナスポイント?およそ
public abstract class Enemy extends GameObject{
public abstract void updatePositionCommon(){
//code common to all
updatePosition();
}
public abstract void updatePosition(){
//override this method in children
}
}
upvoteあなたの努力のために。 – Raj