オブジェクトがインターフェイスから継承する抽象クラスを継承する場合、オブジェクトはインターフェイスから継承されますか?オブジェクトがインターフェイスから継承する抽象クラスを継承する場合、オブジェクトはインターフェイスから継承されますか?
このインターフェイスは依存性注入コンテナで使用できますか?
ありがとうございました。
オブジェクトがインターフェイスから継承する抽象クラスを継承する場合、オブジェクトはインターフェイスから継承されますか?オブジェクトがインターフェイスから継承する抽象クラスを継承する場合、オブジェクトはインターフェイスから継承されますか?
このインターフェイスは依存性注入コンテナで使用できますか?
ありがとうございました。
はい、このインターフェイスを実装しています。これは本当に依存関係として注入できるためです。ここで
は、インターフェイスの実装を証明する簡単なテストです:
using System;
interface IParent {}
abstract class Parent : IParent {}
class Example : Parent
{
static void Main()
{
Console.WriteLine(new Example() is IParent);
}
}
私が契約の一種としてインターフェイスを考えます。抽象クラスはインタフェースから継承しているので、インタフェースの機能を実装することが確実に要求されます。オブジェクト(実際にはそのクラス)は、抽象クラスの抽象関数をオーバーライドするよう要求されます。 私の意見では、このパターンは、安定したインターフェイスまたは抽象クラスにのみ適しています。インターフェースや抽象クラスの契約が変更されると、それは災害になります。おっと〜〜、あなたはビルドをねじます!
基本クラスに仮想クラスを使用して仮想関数を作成することをお勧めします。つまり、interface/abstractclassソリューションと同じようにサブクラスでオーバーライドでき、新しいオーバーロードも簡単に追加できます。