K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
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); ・・・② >}; > > >①は戻りの値の型が共変なので問題無し。 >②は引数の方が共変であるため実行時チェックが必要。 > > >アップキャストは常に可能ですが、 >ダウンキャスト時は実行時チェックが必要だと理解しています。 > >戻りの値の型が共変、引数の型が共変、 >ともにダウンキャストとなる、という認識ですが、 >なぜ、問題の有無の判断が変わってくるのでしょうか。 > > >一般的な言語のオーバーライドの動作に関することで >本掲示板への質問が適切かどうか分かりませんが、 >もしよろしければ細くいただけると助かります。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!