ミックスインと継承 質問する

ミックスインと継承 質問する

ミックスインと継承の違いは何ですか?

ベストアンサー1

ミックスインは通常、多重継承で使用されます。したがって、その意味では「違いはありません」。

詳細は、ミックスインがスタンドアロン オブジェクトとして役立つことはほとんどないということです。

たとえば、色のプロパティと幅と高さを追加する「ColorAndDimension」という名前のミックスインがあるとします。

これで、ColorAndDimension を、たとえば Shape クラス、Sprite クラス、Car クラスなどに追加できるようになりました。そして、それらはすべて同じインターフェース (get/setColor、get/setHeight/Width など) を持つことになります。

したがって、一般的なケースでは、ミックスインは継承です。ただし、ミックスインが「プライマリ」クラスであるか、単にミックスインであるかは、ドメイン全体におけるクラスの役割の問題であると主張することもできます。


編集 -- 明確にするため。

はい、今日の現代用語で言えば、ミックスインは、関連する実装を持つインターフェースと考えることができます。これは、単純で古くて日常的なクラスを使用した、単純で古くて日常的な多重継承にすぎません。これは、MI の特定のアプリケーションに過ぎません。ほとんどの言語では、ミックスインに特別なステータスは与えられていません。これは、スタンドアロンで使用されるのではなく、「ミックスイン」されるように設計されたクラスにすぎません。

おすすめ記事