Полиморфизм: Полиморфизм - это способность объекта принимать различные формы. Наиболее частое использование полиморфизма в ООП происходит, когда ссылка на родительский класс используется для ссылки на объект дочернего класса.
Полиморфизм динамической привязки / времени выполнения:
Время выполнения Полиморфизм, также известный как метод переопределения. В этом механизме, с помощью которого вызов переопределенной функции разрешен во время выполнения.
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");
}
}
Выход:
Метод внутреннего запуска автомобиля
Статический связывание / полиморфизм времени компиляции:
Какой метод следует вызывать, решается только во время компиляции.
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;
}
}
Выход: Внутри коллекции sort metho