在Python中创建一个重写父类方法的子类

1 投票
1 回答
1400 浏览
提问于 2025-04-16 14:10

我正在尝试创建一个叫做 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) 这段代码来调用父类的那个方法,然后再让子类做它需要做的事情。

撰写回答