Я читаю Head First Object Oriented Design, чтобы лучше понять концепции ООП.
Полиморфизм объясняется следующим образом:
Airplane plane = new Airplane();
Airplane plane = new Jet();
Airplane plane = new Rocket();
Вы можете написать код, который работает над суперклассом, например, с самолетом, но будет работать с любым из подклассов.: - * Хммм.... Я получил этот. *.
Далее объясняется:
- > Итак, как полиморфизм делает код гибким?
Ну, если вам нужна новая функциональность, вы можете написать новый подкласс САМОЛЕТ. Но так как ваш код использует суперкласс, ваш новый класс будет работать без каких-либо изменений в остальной части вашего кода.
Теперь я не понимаю. Мне нужно создать подвал самолета. Например: создаю класс Randomflyer
. Чтобы использовать его, мне нужно будет создать его объект. Поэтому я буду использовать:
Airplane plane = new Randomflyer();
Я не понимаю. Даже я бы сразу создал объект подклассов. Тем не менее, я не вижу необходимости менять свой код в любом месте, когда буду добавлять новый подкласс. Как использование суперкласса не позволяет мне внести дополнительные изменения в остальную часть моего кода?