在Python中创建一个重写父类方法的子类
我正在尝试创建一个叫做 Dean 的类,这个类需要能够调用它的父类中的一个方法,比如说打印一些文本。我被告知可以用 Professor.say(self, stuff) 来调用父类的方法,但我不是很明白这个意思。
我的代码如下:
Class Dean(Professor):
Professor.say(self, stuff)
self.say(stuff + "- We need money now, send")
如果之前没说清楚,我的主要目的是让 Dean 类能够为父类中的任何实例调用 say 方法,也就是说,即使在其他子类(比如我在另一个 Python 问题中提到的 Lecturer 或 Professor)中也有 say 方法,它仍然能够打印出“- 我们现在需要钱,快寄过来”。如果能给我一些建议或者指出我困惑的地方,我会很感激。
1 个回答
4
让我用更简单的说法来解释你刚才说的内容。你想要一个叫做 Dean
的子类,它是 Professor
的一种,里面有一个方法可以覆盖父类里的一个方法,这个方法叫 say
。而且,Dean
的这个方法应该在执行自己的功能之前,先调用父类的那个方法。
答案是:你需要以和父类中定义的方法相同的方式来定义这个被覆盖的方法,保持名字和参数一致。在这个方法里,你可以用 Professor.say(self, stuff)
这段代码来调用父类的那个方法,然后再让子类做它需要做的事情。