Рассмотрим эту программу:Почему метод переопределенного экземпляра, вызываемый из подкласса, когда мы используем ссылочную переменную родительского класса для вызова?
class ABC
{
public void fun()
{
System.out.println("Function of ABC class ");
}
}
class XYZ extends ABC
{
public void fun()
{
System.out.println("Function of XYZ class ");
}
}
public class Example
{
public static void main(String []args)
{
ABC obj = new XYZ();
obj.fun();
}
}
Выход:
Function of XYZ class
obj
имеет ссылку на super class ABC
и ранее я изучал, что ссылочная переменная, принадлежащая суперкласса может получить доступ только члены высшего класса не подкласс. Но когда мы переопределяем метод в классе sub class, то почему ссылочная переменная обращается к члену подкласса.
Полиморфизм !!! –