概念としてのポリモーフィズムは継承を必要としませんが、多くの言語では継承がそれを達成する唯一の方法です。smalltalkなどの一部の言語では、同じメンバーとプロパティのセットを実装する任意のタイプを多態的に使用できます。アヒルのように見え、アヒルのように鳴き、アヒルのように歩く場合は、アヒルのように扱うことができます。
ポリモーフィズムとは、元のオブジェクトにアクセスして使用するのと同じ方法を提供することにより、あるオブジェクトを別のオブジェクトとして扱う機能のことです。これは、リスコフの置換原則によって最もよく示されています。これは、別のオブジェクトがオブジェクトに対して興味深いことを行うために使用できる「署名」を定義するため、「インターフェース」または「コントラクト」と呼ばれることもあります。
C#では、インターフェイスまたは他の(シールされていない)クラスから継承できます。違いは、インターフェースが実際のストレージやメソッド(「署名」のみ)を提供せず、単なる定義であるということです。インターフェイスをインスタンス化することはできません。インスタンス化できるのは、インターフェイスを実装するオブジェクトのみです。
クラスは、青写真に基づいて家を建てるのと同じ方法でインターフェース(IDisposableなど)を実装します。同じ設計図で2つの家を建てる場合、各家はまったく同じ「インターフェース」を持ち、異なる色のペンキやカーペットを使用している可能性がありますが、まったく同じように機能しますが、2つの明確に異なる家であり、多くの家があります。さまざまな機能の違い。
C#に関しては、インターフェイスが、それを実装するオブジェクトが持つ必要のあるプロパティまたはメンバーを示していることを知っておいてください。同様に、C#では、大きな違いは、複数のインターフェイスを継承できますが、単一のクラスしか継承できないことです。(すなわちpublic class Test : BaseClass, IDisposable, ITest, IFooBar
)