Ответ
Объектно-ориентированное программирование (ООП) — это парадигма, основанная на представлении программы как совокупности взаимодействующих объектов. Её цель — управление сложностью ПО через структурирование кода. Ключевые принципы:
-
Инкапсуляция Объединение данных (атрибутов) и методов для их обработки в одном объекте (классе) с сокрытием деталей реализации от внешнего мира. Это позволяет защитить данные от несанкционированного доступа и упростить поддержку кода.
-
Наследование Механизм, позволяющий создавать новый класс (потомок) на основе существующего (родителя). Потомок перенимает атрибуты и методы родителя, может их расширять или переопределять. Основное преимущество — повторное использование кода.
-
Полиморфизм Способность объектов с одинаковым интерфейсом (например, с одним и тем же названием метода) иметь разную реализацию этого интерфейса. Это позволяет писать более гибкий и обобщенный код.
Пример на Python:
# Родительский класс
class Animal:
def __init__(self, name):
self._name = name # Инкапсуляция: атрибут защищен
def speak(self):
raise NotImplementedError("Метод должен быть переопределен в дочернем классе")
# Наследование от 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:
# Один и тот же вызов метода animal.speak() дает разный результат
print(animal.speak())