K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[1897] オーバーライド時の共変、反変について
返信


投稿者:lang
2015/02/21 14:30:58

Link:
”プログラミング言語を作る”内の8-3-5章にて 
下の解説を読みました。 

class ShapeArray{ 
  Shape get(int index); 
 void set(int index, Shape shape); 
}; 

class CircleArray extends ShapeArray{ 
  Circle get(int index); ・・・ 
  void set(int index, Circle circle); ・・・ 
}; 


,鰐瓩蠅涼佑侶燭共変なので問題無し。 
△楼数の方が共変であるため実行時チェックが必要。 


アップキャストは常に可能ですが、 
ダウンキャスト時は実行時チェックが必要だと理解しています。 

戻りの値の型が共変、引数の型が共変、 
ともにダウンキャストとなる、という認識ですが、 
なぜ、問題の有無の判断が変わってくるのでしょうか。 


一般的な言語のオーバーライドの動作に関することで 
本掲示板への質問が適切かどうか分かりませんが、 
もしよろしければ細くいただけると助かります。 
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[ より新しい投稿] [ より古い投稿]