0

スーパークラスのフィールドと同じ名前のサブクラスのフィールドの宣言が推奨されないのはなぜですか? ここに 記載。この隠蔽は何につながる可能性がありますか?ありがとうございました。

4

1 に答える 1

3

さて、ここで 2 つの問題があります。

  • あるフィールドが別のフィールドを隠しているという混乱
  • おそらく非常に類似したことを意味する 2 つの状態があることの混乱

最初の点は、単純にフィールドを非公開にしておくことで簡単に緩和されます。これは一般的に良い考えです。ただし、2 番目の点は間違いなくより重要です。同じオブジェクトで (たとえば)両方とも呼び出される 2 つのフィールドがnameある場合、両方のフィールドを認識している単一のコードがなくても、そのオブジェクト内に真に 2 種類の名前があることを示唆しています。フィールド名の少なくとも 1 つがより具体的であると役立ちます。そうしないと同じ状態を表す 2 つのフィールドがあり、非常に壊れやすく、非効率的です。(たとえば、一方を変更するのは簡単ですが、もう一方を変更することはできません。)

于 2012-09-08T15:09:11.440 に答える