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

Ответ

Подкласс (subclass), или дочерний/производный класс, — это класс, который наследует свойства и поведение (атрибуты и методы) от другого класса, называемого суперклассом (superclass), или родительским/базовым классом.

Наследование является одним из ключевых принципов ООП. Его основная цель — повторное использование кода и построение иерархии классов от общего к частному.

Ключевые возможности подкласса:

  1. Наследование: Подкласс автоматически получает все не-приватные методы и атрибуты суперкласса.
  2. Переопределение (Override): Подкласс может предоставить собственную реализацию метода, унаследованного от суперкласса.
  3. Расширение (Extend): Подкласс может добавлять новые методы и атрибуты, которых нет в суперклассе.

Пример на Python

# Суперкласс (базовый класс)
class Vehicle:
    def __init__(self, brand):
        self.brand = brand

    def move(self):
        print("Moving...")

# Подкласс, наследующий от Vehicle
class Car(Vehicle):
    def __init__(self, brand, model):
        # Вызов конструктора родительского класса для инициализации brand
        super().__init__(brand)
        self.model = model # Расширение - новый атрибут

    # Переопределение метода move
    def move(self):
        print(f"The car {self.brand} {self.model} is driving.")

    # Расширение - новый метод
    def honk(self):
        print("Beep beep!")

# Использование
my_car = Car("Tesla", "Model S")
my_car.move()  # Вывод: The car Tesla Model S is driving.
my_car.honk()  # Вывод: Beep beep!
print(my_car.brand) # Атрибут унаследован от Vehicle