C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#での抽象クラスとインターフェイスの違い


インターフェイスは、インターフェイスのメンバーであるプロパティ、メソッド、およびイベントを定義します。インターフェイスには、メンバーの宣言のみが含まれます。メンバーを定義するのは、派生クラスの責任です。

抽象クラスはある程度同じ目的を果たしますが、基本クラスによって宣言されるメソッドが少なく、派生クラスが機能を実装する場合にほとんど使用されます。

ここで、C#の抽象クラスとインターフェイスの違いを見てみましょう。

継承

クラスは複数のインターフェースを継承できますが、クラスは1つの抽象クラスのみを継承できます。

メンバーフィールド

抽象クラスの場合に定義されるのに対し、インターフェースでフィールドを定義することはできません。

アクセス修飾子

インターフェイスには、デフォルトですべてがパブリックであるため、public、private、protected、internalなどのアクセス修飾子はありません。

多重継承

多重継承はAbstractを使用して達成することはできませんが、Interfaceを使用すると達成できます。


  1. Javaの抽象クラスとインターフェースの違い

    Javaでは、抽象化は抽象クラスとインターフェースを使用して実現されます。どちらにも、子クラスまたは実装クラスが実装する必要のある抽象メソッドが含まれています。抽象クラスとインターフェースの重要な違いは次のとおりです。 Sr。いいえ。 キー 抽象クラス インターフェース 1 サポートされているメソッド abstractクラスには、抽象メソッドと具象メソッドの両方を含めることができます。 インターフェイスは抽象メソッドのみを持つことができます。 Java 8以降では、静的メソッドだけでなくデフォルトメソッドも使用できます。 2 多重継承

  2. 抽象クラスとインターフェースの違い

    抽象クラスは、デフォルトの動作を実装するインスタンスメソッドを持つことができます。インターフェイスは定数とインスタンスメソッドのみを宣言できますが、デフォルトの動作を実装することはできず、すべてのメソッドは暗黙的に抽象化されています。インターフェースにはすべてのパブリックメンバーがあり、実装はありません。