Основы наследования
Часть раздела Объектно-ориентированное программирование путешествия по 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):, чтобы создать наследование. Это помогает повторно использовать код и создавать логичные иерархии классов.
Задание
Среднеvehicle.py: содержит родительский классVehiclecar.py: содержит классCar, который наследуется отVehicledriver.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 без измененийВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Введение в ООПВнешние файлыКлассы и объектыПараметр selfМетодыАтрибутыМетод-конструктор (__init__)Повторение — простой калькулятор4Наследование
Основы наследованияФункция super()Переопределение методовМножественное наследованиеПорядок разрешения методовПовторение: иерархия сотрудников7Специальные методы
Введение в магические методыПерегрузка операторовМагические методы контейнеровПовторение — пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн «Одиночка»Паттерн «Фабрика»Паттерн «Наблюдатель»Паттерн «Стратегия»2Декораторы
Введение в декораторыДекоратор свойстваДекоратор статического методаДекоратор метода класса5Полиморфизм
Переопределение методов: повторениеУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовПовторение — калькулятор фигур8Продвинутые концепции ООП
Композиция и наследованиеМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн «Команда»Паттерн «Адаптер»Паттерн «Декоратор»Паттерн «Шаблонный метод»Паттерн «Состояние»Паттерн «Компоновщик»3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыПовторение — менеджер банковского счёта6Инкапсуляция
Публичные, защищённые и приватные членыМодификаторы доступаСокрытие информацииПродвинутые декораторы свойствПовторение — система учёта студентов12Проект: Система управления библиотекой
Обзор проектаКлассы книг и пользователейСистема выдачи книгФункция поискаИнтерфейс администратораТестирование и интеграцияПотренируйтесь самостоятельно: Онлайн-компилятор Python