Ответ
Объектно-ориентированное программирование (ООП) — это парадигма программирования, в которой программа представляется как совокупность взаимодействующих объектов. Каждый объект является экземпляром определённого класса и объединяет в себе данные (атрибуты) и методы для их обработки.
Ключевая цель ООП — организация сложного кода в виде логических, переиспользуемых и легко управляемых блоков. Основные принципы:
-
Инкапсуляция Объединение данных и методов, которые с ними работают, в единый объект (класс) с сокрытием деталей реализации от внешнего мира. Доступ к данным контролируется через публичный интерфейс (методы).
-
Наследование Механизм, позволяющий создавать новый класс (потомок) на основе существующего (родителя), перенимая его атрибуты и методы. Это способствует переиспользованию кода и созданию иерархии классов.
-
Полиморфизм Способность объектов с одинаковым интерфейсом (например, с методом
speak
) иметь разную реализацию этого интерфейса. Это позволяет писать код, который может работать с объектами разных классов единообразно. -
Абстракция Выделение наиболее значимых характеристик объекта и отбрасывание несущественных. Абстракция определяет общий «контракт» или интерфейс для группы связанных объектов.
Пример на Python:
# Абстракция: определяем общий интерфейс для всех животных
class Animal:
def __init__(self, name):
# Инкапсуляция: данные (name) скрыты внутри объекта
self.name = name
def speak(self):
raise NotImplementedError("Дочерний класс должен реализовать этот метод")
# Наследование: Dog наследует свойства и методы от Animal
class Dog(Animal):
# Полиморфизм: своя реализация метода speak
def speak(self):
return f"{self.name} говорит 'Гав!'"
class Cat(Animal):
# Полиморфизм: другая реализация метода speak
def speak(self):
return f"{self.name} говорит 'Мяу!'"
# Использование
dog = Dog("Рекс")
cat = Cat("Мурка")
animals = [dog, cat]
# Благодаря полиморфизму мы можем работать с разными объектами через общий интерфейс
for animal in animals:
print(animal.speak())
# Вывод:
# Рекс говорит 'Гав!'
# Мурка говорит 'Мяу!'