На 2 уровне 8 лекции джавы кор есть пример:
public static void main(String[] args)
{
//добавляем всех роботов в список
ArrayList robots = new ArrayList();
robots.add(new РабочийРобот());
robots.add(new РоботСторож());
robots.add(new Поливалка());
//строить стену, если есть такая способность
for (Object robot: robots)
{
if (robot instanceof WallBuilder)
{
WallBuilder builder = (WallBuilder) robot;
builder.buildWall();
}
}
}
}
Соответственно, у нас есть Object robot : robots, в комментариях к лекции пояснили, что мы приводим потом Object robot к WallBuilder т.к. у нас у Обджекта нет метода buildWall(), и ему надо его вернуть через приведение(надеюсь смысл понятен, написал криво, но, вроде, ясно). Так вот, с приведением типа все понятно, но я не понимаю, как Object robot проходит условие instanceof, если в нем до приведения типа нет метода buildWall()?