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