- - PR -
変数の継承について
«前のページへ
1|2|3
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-07-16 09:04
>ちなみに皆さんはこの継承の仕様にはまってないんですかね?
protected SomeType variable; なんてのは、親クラスと子クラスの関係がよほど深いか、 親クラスがかなり内部的にしか使わないようなものでない限り使わないので、 はまらないような気が。 親クラスであろうと、アクセサメソッドを経由したほうが結合が緩くなりますし、 変なこともされにくいし。 | ||||||||||||
|
投稿日時: 2002-07-16 17:38
でも、多態はメソッドテーブルで実現されているのでは?
インライン展開するのは、もちろんスピードの関係ですよね。 実際に多態を実現する必要のないメソッドは、インラインでも良いと私も思います。
どういう文面でこの文章が出て来ているのか、不明ですが、メソッドをオーバーライドする主目的が、メソッドを隠す事である様な表現はおかしいですね。 また、それと同じレベルで、変数(フィールド)のオーバーライドを述べるのは、誤解を招くと思います。(ただ単に、変数もオーバーライド出来ますよという意味なら、良いんですが) メソッドをオーバーライドするのは、継承に於いて多態を実現する自然な処理だと思います。 でも、変数(フィールド)をオーバーライドするのは、異常な状態ではないでしょうか?(場合によっては必要なんでしょうけど…) フィールドを再利用する、それが本来の継承の目的だと、私は思うからです。 | ||||||||||||
|
投稿日時: 2002-07-20 16:27
フィールドへの参照は、コンパイル時に参照の型で決まると心に刻んでます。 (メソッドは実行時) はまりやすいので、フィールドの継承?(隠蔽?shadow?) は極力使わないようにしてます。 どうしても使う場合は、しょむさんの言うように、 アクセサメソッドを使ってアクセスするか、 明確にsuper.〜のように参照します。 | ||||||||||||
«前のページへ
1|2|3
