什么是多态?
同一种行为,使用不同的对象,获得不同的状态。(例如定义函数,通过类型注解声明传入参数为父类对象,但是实际传入的是子类对象,从而获得不同的工作状态)
什么是抽象方法?
没有具体实现的方法(只有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)