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