ООП – набор концепций и идей, позволяющих осмысливать задачу и найти путь к решению более эффективным и понятным способом.
Принципы ООП
Преимущества:
Инкапсуляция – возможность скрыть внутреннюю составляющую объекта от пользователей.
Наследование – возможность указывать на происхождение класс, свойства и функции заимствуются новым классом.
Полиморфизм – возможность, позволяющая старому коду вызывать новый.
«Один интерфейс – множество реализаций».
Недостатки:
Документирование классов. Поскольку метод может быть переопределён, в документации должно быть указано, что он делает и в каком он месте вызывается.
Инкапсуляцией не следует злоупотреблять. Чем больше логики и данных открыто, тем сложнее его расширять.
Определение: «один интерфейс - много методов»
Одинаковые по сути действия должны иметь одинаковые названия, то есть например если нужно совершить выключение компьютера, то и действие будет называться выключение компьютера. То же самое например и с включением
Виды полиморфизма
Статический полиморфизм
– перегрузка методов
– переопределение методов
Динамический полиморфизм
Статической называют такую разновидность полиморфизма, при которой вызываемая функция явно задается во время компиляции программы.
Перегрузка
Если два метода имеют одинаковое название, то они считаются перегруженными
Виды перегрузки
– Перегрузка в разных классах
– Перегрузка в одном классе
Переопределение методов
Переопределением называют такую перегрузку методов, когда в классах, связанных отношением наследования, существуют методы с одинаковыми именами, количеством и типом параметров Динамической называют такую разновидность полиморфизма, при которой на этапе компиляции задается группа вызываемых функций, из которых в момент исполнения программы автоматически выбирается нужная