Основные принципы ООП:
- Инкапсуляция: Объединение данных (атрибутов) и методов (функций), работающих с этими данными, в единую сущность - класс. Скрытие внутренней реализации объекта от внешнего мира.
- Наследование: Создание нового класса (производного) на основе существующего (базового), унаследовав его свойства и поведение. Позволяет повторно использовать код и создавать иерархии классов.
- Полиморфизм: Способность объектов разных классов реагировать на одинаковое сообщение (вызов метода) по-разному, в зависимости от их типа. Обеспечивает гибкость и расширяемость кода. Является применением принципа единой ответственности — единый вызов метода при работе под разными реализациями.
- Абстракция: Выделение существенных характеристик объекта и игнорирование несущественных деталей. Создание упрощенной модели объекта для удобства работы.
Пример полиморфизма в C++ с использованием виртуальных функций:
cpp