目录
一.多态
抽象类(接口)
小结
一.多态
多态,指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。
同样的行为(函数),传入不同的对象得到不同的状态
演示
class Animal():
def clock(self):
pass
class Dog(Animal):
def clock(self):
print("汪汪汪")
class Cat(Animal):
def clock(self):
print("喵喵喵")
def hall(animal:Animal):
animal.clock()
dog=Dog()
cat=Cat()
hall(dog)
hall(cat)
结果是
多态也多会用在抽象类的场景上
抽象类(接口)
细心的同学可能发现了,父类Animal的speak方法,是空实现
这种设计的含义是:
- 父类用来确定有哪些方法
- 具体的方法实现,由子类自行决定
这种写法,就叫做抽象类(也可以称之为接口)
抽象类:含有抽象方法的类称之为抽象类
抽象方法:方法体是空实现的( pass)称之为抽象方法
为什么要使用抽象类呢?
抽象类就像一个标准,提出标准之后,就由后面的继承类去具体实现
抽象类就好比定义一个标准,
包含了一些抽象的方法,要求子类必须实现。
演示
class AC:
def cool_wind(self):
pass
def hot_wind(self):
pass
def swing_l_r(self):
pass
class Mide_AC(AC):
def cool_wind(self):
print("美的制冷")
def hot_wind(self):
print("美的制热")
def swing_l_r(self):
print("美的左右摆风")
class Gree_AC(AC):
def cool_wind(self):
print("格力制冷")
def hot_wind(self):
print("格力制热")
def swing_l_r(self):
print("格力左右摆风")
def cool(a:AC):
a.cool_wind()
a.hot_wind()
mide=Mide_AC()
gree=Gree_AC()
cool(mide)
cool(gree)
结果是
小结
1.什么是多态?
多态指的是,同一个行为,使用不同的对象获得不同的状态。
如,定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态
2.什么是抽象类(接口)
包含抽象方法的类,称之为抽象类。抽象方法是指:没有具体实现的方法( pass)称之为抽象方法
3.抽象类的作用
多用于做顶层设计(设计标准),以便子类做具体实现。
也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法
并配合多态使用,获得不同的工作状态。