3

動的バインディングの実装方法と、静的バインディングと動的バインディングの違いを理解しています。動的バインディングの定義に頭を悩ませているだけです。それ以外は基本的にランタイムバインディングタイプです。

4

2 に答える 2

3

基本的に、動的バインディングとは、関数呼び出しのアドレスがアセンブリ言語に変換されるときにプログラムのコード セグメントにハードコーディングされず、スタック変数、配列ルックアップなどの他の場所から取得されることを意味します。

より高いレベルで、コード行がある場合:

foo(bar) //Calls a funciton

これが呼び出す関数をコンパイル時に正確に知ることができる場合、これは静的バインディングです。コンパイル時に認識できないことによって foo が複数の関数を意味する場合、これは動的バインディングです。

于 2008-11-02T23:28:24.000 に答える
1

ポリモーフィズムで明らかであることを理解しています。通常、基本クラスから派生する複数のクラスを作成する場合。派生クラスのそれぞれに、それぞれが使用する関数が含まれている場合。基本クラスは、派生クラスの関数を実行するために使用でき、正しい関数を適切に呼び出すことができます。

例えば:

class Animal
{
void talk();
}

class Dog extends Animal
{
public void talk() { System.out.println("woof"); }
}

class Cat extends Animal
{
public void talk() { System.out.println("meow"); }
}

....
Animal zoo[2];
zoo[0] = new Dog();
zoo[1] = new Cat();

for(Animal animalToggle: zoo)
{
animalToggle.talk();
}

表示されます: woof meow

私の解釈が役に立てば幸いです。

于 2008-11-02T23:28:02.347 に答える