1

クラスが別のクラスをオーバーライドするかどうかを確認するにはどうすればよいですか?

例:SaybobBot、抽象クラスをオーバーライドするクラスUnitでした。次のことを真と評価するにはどうすればよいですか?

bob.getClass() == Unit.class
4

2 に答える 2

7

instanceof次の演算子を使用します。

if(bob instanceof Unit) {
    // ...
}

を使用してオブジェクトがクラスのインスタンスであるinstanceofことを確認したら、次のようにそのクラスに安全にキャストできます。

if(bob instanceof Unit) {
    Unit bobUnit = (Unit) bob;
    bobUnit.unitMethod();
}

Unitこれは、サブクラス (例: ) だけが定義されている関数を呼び出すときに必要になる場合があります。

于 2012-12-02T20:20:48.013 に答える
1

実装が

Bob implements Unit 

それから

bob.getClass().getSuperclass() 

ユニットを返します

于 2012-12-02T20:36:14.303 に答える