Главная

Java


Три принципа ООП

Инкапсуляция :

Инкапсуляция – это когда мы не даем другим обьектам изменять внутреннее состояние обьектов.
Когда внутреннее состояние обьекта может меняться им самим (через методы).

Инкапсуляция - это упаковка данных и функций в один компонент (например, класс) и последующий контроль доступа к этому компоненту, создавая тем самым "чёрный ящик" из объекта.
По этой причине, пользователю необходимо знать только интерфейс этого класса (то есть данные и функции, предоставляемые для взаимодействия с классом извне), а не то, как он реализован внутри.

Инкапсуляция нужна для того, что бы пользователь не мог использовать не предназначенный для него функционал.


Наследование :

Наследование - обьект потомок может унаследовать поля и методы предка .


Полиморфизм (самый полезный. Скоращает кол-во дублируешегося кода):

способность функции обрабатывать данные разных типов (Википедия)

по Бьёрну Страуструпу: "один интерфейс — много реализаций"

Полиморфизм — это когда мы можем вызывать одни и те же методы у разных классов.
Внутри они могут работать по-разному, но внешне всё будет выглядеть одинаково.

Неважно, как эти объекты устроены, — в ООП можно сказать катеру и подводной лодке: «Плыви», и
они будут делать это как умеют: катер поплывёт по поверхности воды, а подводная лодка начнёт погружаться под воду.


Абстрактность:

Абстрактный класс - нельзя создать объект или экземпляр абстрактного класса.
Производный класс обязан переопределить и реализовать все абстрактные методы, которые имеются в базовом абстрактном классе.
Также следует учитывать, что если класс имеет хотя бы один абстрактный метод, то данный класс должен быть определен как абстрактный.