0

私は、ポリモーフィズムと継承に関する章を読み終え、Java の本のすべての演習を完了しました。しかし、実際にダウンキャストを使用する必要がある理由はまだわかりません。ダウンキャストを使用しなければならなかった仕事やプロジェクトの例をいくつか挙げていただけますか?

4

1 に答える 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 に答える