Практикуемся применять абстракции в реальных сценариях: платежи, транспорт, графический редактор. Покажем, как вынести общее поведение в базовый
abstract класс, работать через общий контракт и заменить «ветвистый» код на
if-
else полиморфизмом. По дороге увидим, как единообразно вызывать методы вроде
process(),
move(),
draw()/
resize(), чтобы код был гибким и расширяемым.