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