私は、ポリモーフィズムと継承に関する章を読み終え、Java の本のすべての演習を完了しました。しかし、実際にダウンキャストを使用する必要がある理由はまだわかりません。ダウンキャストを使用しなければならなかった仕事やプロジェクトの例をいくつか挙げていただけますか?
質問する
431 次
1 に答える
1
基本クラスと、その基本クラスから直接または間接的に派生するクラスがあるとします。次に、その基本クラス型のオブジェクトが派生クラス型に型キャストされるときはいつでも、それはダウンキャストと呼ばれます。インスタンスを特定するには、ダウンキャストする必要があります。たとえば、getobject()
を を返すメソッドとするObject
と、String
は のサブクラスであるObject
ため、このメソッドも を返す場合がありString
ます。
ケース (i):
Object o = getObject();
ここでは、メソッドによって返されたオブジェクトをObject
参照変数に割り当てています。Object
そのため、インスタンスのクラスで定義されたメソッドのみを呼び出すことができますo
。
ケース (ii):
Object o = getObject();
if(o instanceof String)
String s = (String)o;
ここで、getobject()
実際にString
インスタンスが返された場合は、それを にダウンキャストしていString
ます。これの利点は、Case(i) では実行できなかった で定義String
されたメソッドを呼び出すことができることです。s
于 2013-04-21T14:21:44.000 に答える