正在加载...

继承

写子类时,你保留父类已经存好的词,只替换其中一项工作。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%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部