Добрый день! Хотелось бы получить немного теории и понять один нюанс в решении задачи. В метода runWorkingProcess(),в цикле for-each происходит проход по каждому объекту типа Astronaut. И к каждому из этих элементов подставляется instanceof в условиях if(). К примеру,
if(astronaut instanceof Human)
            {
                pilot( (task1703Human) astronaut);
            }
Как я понял Human - указатель на класс, а astronaut это объект при проходе for-each ArrayList<Astronaut>. И суть этой проверки в том, что к указателю подставляется объект и если инициализация проходит успешно, то true и false в противном случае. Но в то же время каждый объект ArrayList<Astronaut> ,при добавлении, имеет тип родительского класса Astronaut. И таким образом уже становиться невозможным проинициализировать указатель с более низшим типом класса по иерархии объектом высшего(родительского класса). В лекции данное свойство описано так: В Java есть специальный оператор — instanceof, который позволяет проверить, можно ли сохранить объект определенного типа в переменную определенного типа. У меня на этот счет две теории: Первая - astronaut проходит по наследованию внутрь иерархии, пока не встретит нужный указатель. Вторая - это вообще не указатель и объект, а что -то другое. Помогите разобраться :) Заранее спасибо!