Загрузка...

Наследование

В классе-потомке вы оставляете то слово, которое уже хранит родитель, и заменяете одну задачу. Desk — потомок Lamp, записывается это как Desk(Lamp). Ни пакета, ни папки при этом не появляется. Desk("blue") по-прежнему хранит blue, потому что потомок не переписывал init. label родителя ставит перед словом glow. label потомка ставит перед ним desk. Каждую лампу вы по-прежнему создаёте сами: одна строка class Desk(Lamp) лампу не создаёт.

потомок заменяет одну задачу

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color

class Desk(Lamp):
    def label(self):
        return "desk " + self.color

plain = Lamp("blue")
desk = Desk("blue")
print(plain.label())
print(desk.label())

На экране две строки: сначала glow blue, потом desk blue. plain создана из Lamp, поэтому работает задача родителя. desk создана из Desk, поэтому работает задача потомка. В каждой строке между первым словом и blue стоит пробел. Обе лампы хранят одно и то же слово; изменилась только задача, которая идёт перед ним. print выводит строки. Методы возвращают слова.

Потомок не переписывает родителя. Lamp по-прежнему говорит glow blue. Красной лампы на этой странице нет. Изменилось лишь то, какая задача выполняется для Desk. plain.color и desk.color — оба blue. Нового цвета потомок не сохранял, он заменил только label. Если бы у потомка не было своего label, для desk тоже выполнилась бы строка glow из родителя. У этого потомка свой label, поэтому вторая строка — desk blue.

Следующая страница — особые методы. Здесь показан только потомок, который сохраняет слово и заменяет одну задачу.

Потомок хранит слово

Desk — потомок Lamp. На экране сначала glow blue, потом desk blue. Сохранённое слово остаётся blue. Потомок заменяет label и не переписывает родителя. Следующая страница — особые методы.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
7
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху