Что такое наследование в объектно-ориентированном программировании?

Ответ

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

Почему это важно: Наследование способствует повторному использованию кода, уменьшает его дублирование и упрощает расширение функциональности, позволяя строить иерархии классов, отражающие отношения "является" (is-a).

Пример в Python:

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return "Издаёт звук"

class Dog(Animal):  # Класс Dog наследует от Animal
    def speak(self):  # Переопределение метода speak
        return "Гав!"

class Cat(Animal): # Класс Cat наследует от Animal
    def speak(self): # Переопределение метода speak
        return "Мяу!"

dog = Dog("Бобик")
print(f"{dog.name} говорит: {dog.speak()}") # Вывод: Бобик говорит: Гав!

cat = Cat("Мурка")
print(f"{cat.name} говорит: {cat.speak()}") # Вывод: Мурка говорит: Мяу!

Ключевые аспекты наследования в Python:

  • Повторное использование кода: Дочерние классы автоматически получают функциональность родителя.
  • Полиморфизм: Объекты разных классов, унаследованных от общего родителя, могут обрабатываться единообразно.
  • Множественное наследование: Python поддерживает наследование от нескольких базовых классов.
  • super(): Функция super() используется для вызова методов родительского класса.