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

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


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

静的バインディング
動的バインディング
Sr。いいえ。
キー

1

基本

コンパイル時に解決されます

実行時に解決されます

2

メカニズムを解決する

クラスとフィールドの静的バインディング使用タイプ

動的バインディングはオブジェクトを使用してバインディングを解決します

3

オーバーロードは静的バインディングの例です

メソッドのオーバーライドは動的バインディングの例です

4.

メソッドの種類

private、final、staticのメソッドと変数は静的バインディングを使用します

仮想メソッドは動的バインディングを使用します

静的および動的バインディングの例

public class FastFood {
   public void create() {
      System.out.println("Creating in FastFood class");
   }
}
public class Pizza extends FastFood {
   public void create() {
      System.out.println("Creating in Pizza class");
   }
}
public class Main {
   public static void main(String[] args) {
      FastFood fastFood= new FastFood();
      fastFood.create();
      //Dynamic binding
      FastFood pza= new Pizza();
      pza.create();
   }
}

  1. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり

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

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