クラスMinorClassA
とMinorClassB
の両方がMajorClass
に拡張されているとします。私はMajorClass
のオブジェクトを持っていますが、実際にはそのサブクラスのインスタンスの1つです。Javaのオブジェクトのサブクラスを確認してください
MinorClassA subclassedObj = new MinorClassA();
MajorClass obj = subclassedObj;
//------ More code -------------
if(subclassof(obj) == MinorClassA) //Something like this
どのようにそのオブジェクトのサブクラスがわかりますか?私はsubclassedObj
へのアクセス権がなく、obj
にしかアクセスできません。
解説:MinorClassA
がMajorClass
のインスタンスであるかどうかを確認する方法を知っていますが、それ以外の方法はありません。
'もし(OBJクラス名のinstanceof)...' – khelwood
*そのオブジェクトのサブクラスが何であるかを知るにはどうすればいいのですか?*インターフェイスへのプログラム、なぜ具体的な型を決定しようとしていますか? –
@ElliottFrisch:「インターフェースへのプログラム」は、あらゆる状況で従うべき教義ではなく、良い一般的なルールと見なすべきです。オブジェクトの実行時の型をチェックする正当な理由があります。 –