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

C#での静的バインディングと動的バインディング


ポリモーフィズムは静的または動的にすることができます。静的ポリモーフィズムでは、関数への応答はコンパイル時に決定されます。動的ポリモーフィズムでは、実行時に決定されます。

コンパイル時のポリモーフィズムまたは静的バインディング

コンパイル時に関数をオブジェクトにリンクするメカニズムは、アーリーバインディングと呼ばれます。静的バインディングまたは早期バインディングとも呼ばれます。

ランタイムポリモーフィズムまたは動的バインディング

ランタイムポリモーフィズムには、動的バインディングまたは遅延バインディングとも呼ばれるメソッドオーバーライドがあります。

抽象クラスには、派生クラスによって実装される抽象メソッドが含まれています。派生クラスには、より特殊な機能があります。動的ポリモーフィズムは、抽象クラスと仮想関数によって実装されます。


  1. Javaでの静的バインディングと動的バインディングの違い

    バインディングは、メソッド呼び出しとメソッドの実際の実装の間にリンクを作成するメカニズムです。 Javaのポリモーフィズムの概念に従って、オブジェクトは多くの異なる形式を持つことができます。オブジェクトフォームは、コンパイル時と実行時に解決できます。メソッド呼び出しとメソッド実装の間のリンクがコンパイル時に解決される場合は静的バインディングと呼ばれ、実行時に解決される場合は動的バインディングと呼ばれます。動的バインディングはオブジェクトを使用してバインディングを解決しますが、静的バインディングはクラスとフィールドのタイプを使用します。 Sr。いいえ。 キー 静的バインディング

  2. Javaでの静的バインディングと動的バインディング

    はい!コンパイラは、メソッドの実行に使用するオブジェクトを知っている場合、参照をオブジェクトに静的にバインドできます。たとえば、静的変数、プライベート変数、final変数は静的バインディングを使用しています。一方、オブジェクトの識別が実行時に行われる場合は、動的バインディングが使用されます。メソッドのオーバーライドは動的バインディングの場合です。 一方、メソッドのオーバーロードは静的バインディングの場合です。