Наследование и ключевое слово «this»

Предположим, что у нас есть следующая ситуация:

Родительский класс 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?

]
12
задан Tunaki 19 June 2016 в 21:18
поделиться