クラスが2つの別々のインターフェイスからインターフェイスを実装する場合、それはまったく同じように動作しますか?C#ダイヤモンド継承(インターフェイス実装)
例:上記
public interface IAnimal { /* ... */ }
public interface IFullAnimal : IAnimal { /* ... */ }
public interface IBear : IAnimal { /* ... */ }
public interface IFullBear : IBear, IFullAnimal { /* ... */ }
// and implementing IFullBear:
public class FullBear : IFullBear { /* ... */ }
、FullBear
はIFullAnimal
とIFullBear
通じIBear
両方からIAnimal
を実装しています。 IFullAnimal
とIBear
の両方はIAnimal
の実装に関する情報を提供していないため(言語では許可されていないため)、IAnimal の実装に関する奇妙な動作が導入されますか。 .NETで
何についての 'インタフェースIA {}インターフェイスIB:IA {}インターフェイスIC:IA、IB {} '。これと実装の関係は何でしょうか?あなたは、クラスにメンバーの 'IAnimal'約束があるという複数の約束をしています。 OK。 –
'IFullBear'は何も実装していませんが、それはインタフェースです。 – crashmstr
だから、あなたは言っている: "私を実装するものは、IAnimalを実装しなければならない"ということは、 'IAnimal'で宣言されたメソッド/プロパティの複数の実装に潜在的につながりかねますか? –