静的バインディングと動的バインディングの概念をJavaで説明してください。Javaの静的バインディングと動的バインディングについて
コンパイル時にJavaでの静的バインディングが発生し、実行時に動的バインディングが発生します。静的バインディングは、バインディングのType(Javaクラス)情報を使用し、動的バインディングはObjectを使用してバインディングを解決します。
これは私の理解のためのコードです。
public class StaticBindingTest {
public static void main (String args[]) {
Collection c = new HashSet();
StaticBindingTest et = new StaticBindingTest();
et.sort (c);
}
//overloaded method takes Collection argument
public Collection sort(Collection c) {
System.out.println ("Inside Collection sort method");
return c;
}
//another overloaded method which takes HashSet argument which is sub class
public Collection sort (HashSet hs){
System.out.println ("Inside HashSet sort method");
return hs;
}
}
と上記のプログラムの出力は、動的バインディングのためのコレクションのソート方法
の中にあった...
public class DynamicBindingTest {
public static void main(String args[]) {
Vehicle vehicle = new Car(); //here Type is vehicle but object will be Car
vehicle.start(); //Car's start called because start() is overridden method
}
}
class Vehicle {
public void start() {
System.out.println("Inside start method of Vehicle");
}
}
class Car extends Vehicle {
@Override
public void start() {
System.out.println ("Inside start method of Car");
}
}
出力は車のstartメソッドの中にありました。助言してください:この理解は正しいのでしょうか?いくつかの例を教えてください。ありがとう。
これはSO上で、これらの日規範のようです... –