重複の可能性:
継承よりも構成を優先しますか?
なぜ(またはどのような場合に)、継承の短所が非常に多いのに、構成ではなく継承を検討する必要があるのだろうか。
- スーパークラスのメソッドを呼び出すサブクラスのメソッドを実装/オーバーライドする場合、スーパークラスの別のバージョン(おそらくライブラリ)がコードを壊さないという保証はありません。
- sublclassメソッドと同じシグニチャを持つが、戻りタイプが異なる新しいメソッドがスーパークラスに表示される場合、クラスはコンパイルされません。
ですから、地球上でどのように信頼できるのか想像できません。スーパークラスの作成者はパフォーマンスを向上させたい場合があり、クライアントコードが機能しなくなる可能性があります。
だから私の質問は:
- これらの問題はどのように解決されますか(たとえば、標準のJavaライブラリで)?
- 継承と構成をいつ使用するのですか?