[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10162] Re: 動的実行メソ ッド決定はなぜされないのか



前橋です。

福嶋さん:
>> ・メソッドをオーバライドした場合、(Javaではだめだが)引数を
>>  広げることはできてよいはず。そういう規則を入れるとき、
>>  衝突を起こしそう。
>
>引数を広げるとはどういうことでしょう?

さすがにこれではまるで説明不足でした。すみません。

>Cのprintfみたいに引数がいくつでも取れる、みたいなことですか?

ではなくて、

「引数を広げる」とは、オーバライドしたとき、サブクラス側の
メソッドでは、引数の型を、スーパークラス方向に変更しても問題は
ないはず、という意味で書きました。

スーパークラス:
  hoge(Hoge o);

サブクラス:
  hoge(Object o);

オーバライドでは、本来、引数の型は広げることができて、戻り値の型は
狭めることができるはずです(Javaではどちらもできませんが)。

まあ、戻り値の型を狭める方はともかく、引数を広げる方は、あまり
利用価値もないかもしれませんが...

------------------------------------------------------------
  前橋 和弥              PXU00211@xxxxxxxxxxx
                         http://member.nifty.ne.jp/maebashi/
------------------------------------------------------------