インターフェースと抽象クラス [重複] 質問する

インターフェースと抽象クラス [重複] 質問する

C# では、いつインターフェースを使用し、いつ抽象クラスを使用すればよいのでしょうか? 決定要因は何でしょうか?

ベストアンサー1

更新: C# 8.0 の新機能:C# 8.0 以降では、インターフェイスはプロパティを含むメンバーの既定の実装を定義できます。インターフェイスではインスタンス データ フィールドが定義されない場合があるため、インターフェイスでプロパティの既定の実装を定義することはまれです。

抽象クラスの利点は次のとおりです。

  • メソッドのデフォルト実装を指定する機能
  • 関数に不変チェックを追加
  • 「インターフェース」メソッドの呼び出し方法をもう少し制御できます
  • インターフェースに関連する、または関連しない動作を「無料で」提供する機能

インターフェースは単なるデータ受け渡し契約であり、これらの機能はありません。ただし、型は 1 つのクラスからのみ派生できますが、任意の数のインターフェースを実装できるため、通常はより柔軟です。

おすすめ記事