hier: Link
paar wichtige Unterschied zwischen statischen und dynamischen Bindung
1) Statische in Java Bindung erfolgt während Compile Zeit während Dynamische tritt während Runtime verbindlich.
2) private, finale und statische Methoden und Variablen verwendet statische Bindung und gebunden durch Compiler, während virtuelle Methoden zur Laufzeit auf Laufzeitobjekt gebunden sind.
3) Die statische Bindung verwendet Informationen vom Typ (Klasse in Java) zum Binden, während das dynamische Binden Objekt zum Auflösen der Bindung verwendet.
3) Überladene Methoden werden mit statischer Bindung verbunden, während überschriebene Methoden zur Laufzeit mit dynamischer Bindung verbunden werden.
Static Binding Beispiel in Java
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;
}
}
Ausgabe: Inside Sammlung Sortiermethode
Beispiel für die dynamische Bindung in Java
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");
}
}
Ausgang: Innerhalb Methode des Car starten
Sie können 'instanceof' verwenden, in der Hoffnung, dass Sie über polymorphe Aussagen wissen –