Menu
CoddyTech

Основы наследования

Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 17 из 64.

Наследование позволяет классу наследовать атрибуты и методы другого класса, создавая отношение между родительским и дочерним классами.

Вот пример родительского класса:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

Создай дочерний класс, который наследуется от родительского:

class Dog(Animal):
    pass  # Наследует всё от Animal

Синтаксис class Dog(Animal): означает, что Dog наследуется от Animal. Укажи имя родительского класса в скобках.

Создай объекты обоих классов:

generic_animal = Animal("Creature")
buddy = Dog("Buddy")

Используй унаследованные методы:

generic_animal.info()
buddy.info()

Вывод:

I am Creature, an animal
I am Buddy, an animal

Хотя Dog не определяет __init__ или info, он автоматически получает их от Animal.

Ты можешь добавить новые методы в дочерний класс:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Унаследованный метод
buddy.bark()  # Новый метод

Вывод:

I am Buddy, an animal
Buddy says Woof!

Ключевой момент: дочерние классы наследуют все атрибуты и методы родительского класса. Используй синтаксис class Child(Parent):, чтобы создать наследование. Это помогает повторно использовать код и создавать логичные иерархии классов.

challenge icon

Задание

Средне
  • vehicle.py: содержит родительский класс Vehicle
  • car.py: содержит класс Car, который наследуется от Vehicle
  • driver.py: основной файл для проверки вашей реализации

В каждом файле есть подробные комментарии TODO, которые помогут вам выполнить реализацию. Вам нужно будет:

  • Дополнить класс Vehicle атрибутами make и model
  • Правильно реализовать наследование классов в классе Car
  • Настроить правильные инструкции импорта между файлами
  • Создать объекты и проверить их в файле driver

Внимательно следуйте комментариям TODO, поскольку в них приведены пошаговые инструкции по решению.

Попробуйте сами

# TODO: Импортируйте класс Vehicle из vehicle.py
# TODO: Импортируйте класс Car из car.py

# TODO: Создайте объект Vehicle с маркой "Toyota" и моделью "Corolla"
vehicle = None

# TODO: Создайте объект Car с маркой "Honda" и моделью "Civic"
car = None

# TODO: Вызовите метод display_info() у объекта vehicle
# Ожидаемый вывод: "Vehicle: Toyota Corolla"

# TODO: Вызовите метод display_info() у объекта car
# Ожидаемый вывод: "Vehicle: Honda Civic"
# Note: Car наследует display_info от Vehicle без изменений
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Python