Расширение типов на Java
Столкнулся с проблемой. Не могу понять тему расширение типов.
Вот пример:
public static void main(String[] args)
{
A cat = new B();
System.out.println((B)cat.getNameB());
}
public static class A{
public String getNameA(){
return "A";
}
}
public static class B extends A
{
public String getNameB(){
return "B";
}
}
Почему я не могу вызвать System.out.println((B)cat.getNameB());
метод getNameB. Ведь я создал ссылку на его класс. И расширили переменную cat до класса B. А значит методы в этом классе стали мне доуступны?
Источник: Stack Overflow на русском