в коде у нас есть такие строки: Object object = new Circle( ) ; Movable movable = (Movable) obj ; Drawable drawable = new Rectangle ; -------------- 1 строка. Мы делаем восходящее преобразование. Наш объект не может использовать методы класса Circle. И я так понимаю он становится объектом класса Object. 2 строка. Мы делаем низходящее преобразование с этим объектом. И здесь мне не понятно. Интерфейсы не могут иметь своих объектов (как Я понял) а здесь мы интерфейсной переменной присуждаем объект. Получается он может использовать методы только интерсейсов??? а там их нет(пока). 3 строка. Вполне нормальное создание объекта. Она ссылается на объект класса который она реализует. И она имеет доступ лишь к тем, которые объявлены в реализуемом классе. Вопрос: #Почему Я не могу вызвать у интерфейсной переменной ссылающейся на объект своего класса метод, который объявлен в этом интерфейсе. (object.draw( ) ;) #Почему правильное решение заставляет меня заново писать вторую строку (Movable) object Всё получится 😀