Привет!
В одном из тестов здесь есть такой вопрос "Можно ли в переменную класса-наследника присвоить ссылку на объект базового класса?". В тесте предполагается, что ответ "нет".
В этой лекции говорится следующее:
При сужении типа, нужно использовать оператор преобразования типа, то есть мы выполняем явное преобразование.
При этом Java-машина выполняет проверку, а действительно ли данный объект унаследован от Типа, к которому мы хотим его преобразовать.
public static void main(String[] args)
{
Object obj = new Tiger();
Animal animal = (Animal) obj;
Cat cat = (Cat) obj;
Tiger tiger = (Tiger) animal;
Tiger tiger2 = (Tiger) cat;
}
Подскажите, в тесте вопрос о чем-то другом, под базовым классом имеется в виду не класс-родитель? Или там просто ошибка?