Предположим, что у нас есть следующая ситуация:
Родительский класс A:
class A{
public A(){}
public doSomething(){
System.out.println(this.getClass());
}
}
с дочерним классом B:
class B extends A{
public B(){}
public void doSomething(){
super.doSomething();
System.out.println(this.getClass());
}
}
и Главный класс:
class Main{
public static void main(String[] args){
A ab=new B();
ab.doSomething();
}
}
Когда я выполнить этот код, результат будет
B
B
Почему this
, на который имеется ссылка в суперклассе A, возвращает B
как класс, когда ссылка имеет тип A?