面向对象编程 - 覆盖基类

时间:2016-01-15 08:50:32

标签: python override

什么是方法覆盖?方法覆盖的确切需要或用途是什么?使用python代码的示例将更有用。

1 个答案:

答案 0 :(得分:1)

class Car(object):
    def shifting(self):
        return "manual"

class AutoCar(Car):
    def shifting(self):
        return "automatic"

autos = [Car(), AutoCar()]

for auto in autos:
    print(auto.shifting())

在这个基本示例中,AutoCar覆盖了基类的方法shifting

如果您收到一个混合了未知Car s(手动和自动)的列表,您可以查询shifting方法并查找。

当然,如果Python是动态类型的,那么列表可以包含来自其他类类型的实例,这些实例也有shifting方法。但这不是重点。

输出:

manual
automatic