Я недавно начал читать об абстрактном классе.Большую часть сайта я посетил, и я вижу, что родительский класс является абстрактным, а дочерний класс определяет этот абстрактный метод родительского класса.Это хорошо для меня, но недавно я увидел другой способ использования абстрактного класса.Код работает, но я не мог понять логику.Код подобен приведенному ниже
abstract class TestParent
{
abstract void display();
public void accessdisplay()
{
display();
}
} // TestParent
public class TestChild extends TestParent
{
void display()
{
System.out.println("child define display");
}
void print()
{
System.out.println("This is print");
}
public static void main(String... arg)
{
TestChild t_child=new TestChild();
t_child.accessdisplay();
t_child.print();
System.out.println("\n******************************************\n");
TestParent t_parent= new TestChild();
t_parent.accessdisplay();
t_parent.display();
//t_parent.print();
}
}
код работает .... но я никогда не вижу, чтобы абстрактный класс пытался использовать собственный абстрактный метод ....
как работает код "t_parent.accessdisplay () "работает?я знаю, что TestChild ссылается на TestParent .... поэтому TestChild может получить доступ к методу родительского класса .... но display () является абстрактным методом .. он определен в дочернем классе ... как может объект "t_parent"который является ссылкой на родительский класс, может получить доступ к методу, определенному в дочернем классе
или есть что-то, что я хочу знать об абстрактном классе .... где отсутствует IAM
пожалуйста, помогите мне