ООП
Полиморфизм
Полиморфизм — реализация задач одной и той же идеи разными способами
ПРИМЕР
Мы сделали программу Календарь
Создали функцию getDay()
Ожидается, что человек введет цифру от 1 до 31
getDay(23)
С помощью полиморфизма мы можем не переживать, если человек введен "Один" вместо ожидаемого "1"
Мы просто сделаем возмонжность чтения и целочисленных данных и строковых
getDay(1) = getDay(Один)
Абстракция
Не является основным принципом ООП
Люди всё еще спорят об этом
Абстракция — отделение концепции от ее экземпляра
Наследование
Наследование — способность в объектно-ориентированном программировании построить новый класс на основе уже заданного. При этом функционал может как полностью совпадать, так и отличаться.
ПРИМЕР
Есть класс АВТОМОБИЛЬ
В него мы запишем общие характеристики автомобиля
Вес = 1 тонна
Количество колес = 4
Мест в салоне = 5
Распололжение руля = слева
Я хочу сделать класс BMW
Мы понимаем, что у него есть общие характеристики с классом АВТОМОБИЛЬ, поэтому мы сделаем его дочерним от этого класса
Тем самым нам не придется вновь писать количество колес или мест в салоне, а вот переопределить вес и расположение можем
Вес = 1,5 тонны
Расположение руля = справа
Класс Lexus
Наследуем от Автомобиля
Вес = 1,7 тонны
Мест в салоне = 7
Инкапсуляция
Инкапсуляция — свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента, а взаимодействовать с ним посредством предоставляемого интерфейса, а также объединить и защитить жизненно важные для компонента данные.
ПРИМЕР
Товар стоит 200 рублей
Программист ввел переменную price = 200
В игре появилась акция, где на товары сделали скидку в 50%
То есть, товар должен стоить 100 рублей
Если мы изменим значение переменной price, в будущем мы можем столкнуться с ошибками в цене
Чтобы такого не произошло, создаются функции getPrice() и setPrice(), где мы будем использовать ссылку на переменную
Тем самым, мы сможем изменить значение ссылки на переменую price = 100, но сама переменная не измениться, и когда пройдет акция, значение останеться таким же.