うまくいけば、あまりにも学術的ではありません...
SWライブラリに実数と複素数が必要だとしましょう。
is-a(またはhere)関係に基づいて、実数は複素数であり、複素数の虚数部のbは単に0です。
一方、私の実装は、その子は親を拡張するため、親のRealNumberには実数部があり、子ComplexNumberには架空のアートが追加されます。
また、相続は悪だという意見もあります。
昨日のように、私が大学でOOPを学んでいたとき、私の教授は、これらの2つの絶対値が異なる方法で計算されるため、これは継承の良い例ではないことを思い出します(ただし、そのためにメソッドのオーバーロード/ポリモーフィズムがありますよね?)。 。
私の経験では、継承を使用してDRYを解決することがよくあります。その結果、階層に人工的な抽象クラスが含まれることがよくあります(実際のオブジェクトを表さないため、名前を見つけるのに問題があることがよくあります)。