C#
の多重継承シミュレーションインターフェイスを使用して、より多くの継承をシミュレート
C#は、より多くの継承をサポートしていませんが、それをシミュレートするために使用できます。以下は例です:
ただし、このシミュレーション方法の欠点は、インターフェイスの変更を変更する必要があることです。
<code class="language-csharp">public interface IFirst { void FirstMethod(); } public interface ISecond { void SecondMethod(); } public class First : IFirst { public void FirstMethod() { Console.WriteLine("First"); } } public class Second : ISecond { public void SecondMethod() { Console.WriteLine("Second"); } } public class FirstAndSecond : IFirst, ISecond { First first = new First(); Second second = new Second(); public void FirstMethod() { first.FirstMethod(); } public void SecondMethod() { second.SecondMethod(); } }</code>
FirstAndSecond
組み合わせ代替
より多くの継承をシミュレートしようとする代わりに、組み合わせの使用を検討する方が良いです。インターフェイスは、組み合わせ要件を定義できます:
<code class="language-csharp">public class FirstAndSecond : IFirst from First, ISecond from Second { }</code>
拡張方法を簡素化してを呼び出す
拡張法(C#3.0で導入)は、隠された属性の方法をさらに簡素化できます。シミュレーション多重継承と比較して、この代替案はより明確で柔軟な方法を提供します。
<code class="language-csharp">public interface ISteerable { SteeringWheel wheel { get; set; } } public interface IBrakable { BrakePedal brake { get; set; } } public class Vehicle : ISteerable, IBrakable { public SteeringWheel wheel { get; set; } public BrakePedal brake { get; set; } public Vehicle() { wheel = new SteeringWheel(); brake = new BrakePedal(); } }</code>
以上がC#で複数の継承をどのようにシミュレートでき、代替案は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。