Python的多态

19 阅读1分钟

什么是多态?

同一种行为,使用不同的对象,获得不同的状态。(例如定义函数,通过类型注解声明传入参数为父类对象,但是实际传入的是子类对象,从而获得不同的工作状态)

什么是抽象方法?

没有具体实现的方法(只有pass),称为抽象方法。

什么是抽象类(接口)?

包含抽象方法的类,叫抽象类。

抽象类的作用?

用于做顶层设计(类似于设计标准),方便子类做具体实现。在结合多态即可。

以下示例中,空调设计标准被定义为AC(抽象类),美的和格力空调作为子类,实现了父类AC

class AC:
    def cool_wind(self):
        pass

    def hot_wind(self):
        pass

    def swing_l_r(self):
        pass


# 格力空调
class GREE_AC(AC):
    def cool_wind(self):
        print('格力空调制冷')

    def hot_wind(self):
        print('格力空调制热')

    def swing_l_r(self):
        print('格力空调左右摇摆')


# 美的空调
class MIDEA_AC(AC):
    def cool_wind(self):
        print('美的空调制冷')

    def hot_wind(self):
        print('美的空调制热')

    def swing_l_r(self):
        print('美的空调左右摇摆')

下面定义了函数,接收父类(设计标准)作为参数,但是实际调用的时候,传入的是不同的继承子类,从而利用多态实现了同一个函数,传入不同的继承子类实现不同的表现的功能

def make_cool(ac: AC):
    ac.cool_wind()

gree_ac: GREE_AC = GREE_AC()
midea_ac: MIDEA_AC = MIDEA_AC()
make_cool(gree_ac)
make_cool(midea_ac)