Python学习06.14:Python父类方法重写(入门必读)
前面讲过在 Python 中,子类继承了父类,那么子类就拥有了父类所有的类变量和类函数。通常情况下,子类会在此基础上,扩展一些新的类变量和类函数。 但凡事都有例外,我们可能会遇到这样一种情况,即子类从父类继承得来的类函数中,大部分是适合子类使用的,但有个别的类函数,并不能直接照搬父类的,如果不对这部分类函数进行修改,子类对象无法使用。针对这种情况,我们就需要在子类中重复父类的函数。 举个例子,鸟通常是有翅膀的,也会飞,因此我们可以像如下这样定义个和鸟相关的类: class Bird: # 鸟有翅膀 def isWing(self): print("鸟有翅膀") #鸟会飞 def fly(self): print("鸟会飞") 但是,对于鸵鸟来说,它虽然也属于鸟类,也有翅膀,但是它只会奔跑,并不会飞。针对这种情况,可以这样定义鸵鸟类: class Ostrich(Bird): # 重写Bird类的fly()函数 def fly(self): print("鸵鸟不会飞") 可以看到,因为 Ostrich 继承自 Bird,因此 Ostrich 类拥有 Bird 类的 isWing() 和 fly() 函数。其中,isWing() 方法同样适合 Ostrich,但 fly() 明显不适合,因此我们在 Ostrich 类中对 fly() 方法进行重写。 重写,有时又称覆盖,是一个意思