public static ArrayList<Astronaut> astronauts = new ArrayList<>();
public static void runWorkingProcess() {
for(Astronaut face:astronauts) {
if (face instanceof Human) pilot((Human)face);
}
}
Подскажите пожалуйста зачем в вызове методов надо явное приведение типов.
Почему не сработает if (face instanceof Human) pilot(face); Ведь instanceof же указывает на принадлежность к Human обьекта Astronaut.
Serg
37 уровень
Подскажите по поводу приведения типов в вызове метода.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
11 августа 2021, 11:08
Потому что в Java нет smart cast, как в Котлине, например.
+1
Serg
11 августа 2021, 12:14
Спасибо. Думал раз наследование плюс инициализация должно и так приводится...
+1