スーパークラスのフィールドと同じ名前のサブクラスのフィールドの宣言が推奨されないのはなぜですか? ここに 記載。この隠蔽は何につながる可能性がありますか?ありがとうございました。
質問する
61 次
1 に答える
3
さて、ここで 2 つの問題があります。
- あるフィールドが別のフィールドを隠しているという混乱
- おそらく非常に類似したことを意味する 2 つの状態があることの混乱
最初の点は、単純にフィールドを非公開にしておくことで簡単に緩和されます。これは一般的に良い考えです。ただし、2 番目の点は間違いなくより重要です。同じオブジェクトで (たとえば)両方とも呼び出される 2 つのフィールドがname
ある場合、両方のフィールドを認識している単一のコードがなくても、そのオブジェクト内に真に 2 種類の名前があることを示唆しています。フィールド名の少なくとも 1 つがより具体的であると役立ちます。そうしないと、同じ状態を表す 2 つのフィールドがあり、非常に壊れやすく、非効率的です。(たとえば、一方を変更するのは簡単ですが、もう一方を変更することはできません。)
于 2012-09-08T15:09:11.440 に答える