Наследование
В классе-потомке вы оставляете то слово, которое уже хранит родитель, и заменяете одну задачу. Desk — потомок Lamp, записывается это как Desk(Lamp). Ни пакета, ни папки при этом не появляется. Desk("blue") по-прежнему хранит blue, потому что потомок не переписывал init. label родителя ставит перед словом glow. label потомка ставит перед ним desk. Каждую лампу вы по-прежнему создаёте сами: одна строка class Desk(Lamp) лампу не создаёт.
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 и не переписывает родителя. Следующая страница — особые методы.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху