クラスが別のクラスをオーバーライドするかどうかを確認するにはどうすればよいですか?
例:SaybobはBot、抽象クラスをオーバーライドするクラスUnitでした。次のことを真と評価するにはどうすればよいですか?
bob.getClass() == Unit.class
instanceof次の演算子を使用します。
if(bob instanceof Unit) {
// ...
}
を使用してオブジェクトがクラスのインスタンスであるinstanceofことを確認したら、次のようにそのクラスに安全にキャストできます。
if(bob instanceof Unit) {
Unit bobUnit = (Unit) bob;
bobUnit.unitMethod();
}
Unitこれは、サブクラス (例: ) だけが定義されている関数を呼び出すときに必要になる場合があります。
実装が
Bob implements Unit
それから
bob.getClass().getSuperclass()
ユニットを返します