Что означает это утверждение:Создать объект в Java
B b = new C();
Означает ли это, что б является объектом класса В и С, в то же время? Может ли кто-нибудь прояснить это подробно.
Я знаю
B b = new B();
при создании объекта из класса B, но я не знаю, что это утверждение означает,
B b = new C();
Итак, b является объектом из суперкласса B? –
C является подклассом класса B. Например. Ferrari будет подклассом Car, так как это тип автомобиля. Точно так же C здесь является типом B. Переменная b позволяет вам создавать C, но только для доступа к ее методам и т. Д. Через интерфейс класса B. Представьте себе, что автомобиль имеет начало(), stop(), ускорение() и замедление(). У Ferrari также были бы эти методы, но он также может добавить метод igniteTurbo(). Делая это, «Car car = new Ferrari();», он позволяет нам создавать объект Ferrari, но разрешать доступ только к первым четырем методам, а не к методу igniteTurbo(). – ManoDestra
Мы также можем создать «Список list = new ArrayList <>();' который позволит нам обрабатывать несколько типов автомобилей в том же списке по принципу полиморфизма. Каждый автомобиль может реализовать свои базовые методы по-разному, но мы можем назвать их через одну и ту же сигнатуру интерфейса. –
ManoDestra