1

効果的なJava第2版の項目16、継承よりも構成を優先すると次のように述べられています

「スーパークラスが後続のリリースで新しいメソッドを取得し、サブクラスに同じシグネチャと異なるリターンタイプのメソッドを与えることができなかった場合、サブクラスはコンパイルされなくなります。

新しいスーパークラスメソッドと同じシグニチャとリターンタイプを持つメソッドをサブクラスに指定した場合は、それをオーバーライドすることになります。」

これらのケースが実際の状況で発生する可能性はどのくらいありますか?ここにいる誰かが実際のビジネスアプリの例を教えてもらえますか(必要に応じて専有情報を削除します)?

4

1 に答える 1

3

これは、そのシナリオがどれほど可能性があるかについてではありません。(その上、マーフィーの法則について聞いたことがあると思います)

それは、構成が継承よりも拘束力のある契約ではないという事実についてです。

継承はクラス間の動作をバインドする非常に強力な方法であり、基本的に項目16は、必要であることが明らかな場合にのみ、その強力な接続を使用する必要があると述べています。他のすべての用途では、構成を優先する必要があります。

于 2010-09-27T06:12:54.477 に答える