诋毁本身就是一种仰望
—— 24.4.8
学习目标
1.理解多态的概念
2.理解抽象类(接口的编程思想)
多态
多态,指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态
多态常用在继承关系上
比如:
函数(方法)形参声明接收父类对象
实际传入父类的子类对象进行工作
即:
以父类做定义声明
以子类做实际工作
用以获得同一行为,不同状态
class Animal: def speak(self): pass class Dog(Animal): def speak(self): print("汪汪汪") class Cat(Animal): def speak(self): print("喵喵喵") def make_noise(animal:Animal): animal.speak() #演示多态,使用2个子类对象来调用函数 dog = Dog() dog.speak() make_noise(dog) cat = Cat() cat.speak() make_noise(cat)
抽象类(接口)
抽象类:含有抽象方法的类称之为抽象类
抽象方法:方法体是空实现的(pass)称之为抽象方法
为什么要实现抽象类呢?
抽象类好比定义一个标准,包含了一些抽象的方法要求子类必须实现
抽象类做顶层的设计,不做具体的实现,也就能完成同一种行为,不同的状态
案例:
class AC: def cool_wind(self): pass def hot_wind(self): pass def swing_l_r(self): pass class Midea_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("格力空调无风感左右摆风") AC1 = Midea_AC() AC1.hot_wind() AC1.cool_wind() AC1.swing_l_r() AC2 = GREE_AC() AC2.hot_wind() AC2.cool_wind() AC2.swing_l_r()
总结
1.什么是多态
多态指的是,同一个行为,使用不同的对象获得不同的状态
如:定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态
2.什么是抽象类(接口)
包含抽象方法的类,称之为抽象类,抽象方法是指:没有具体实现的方法(pass),称之为抽象方法
3.抽象类的作用
多用于做顶层设计(标准设计),以便子类做具体实现
也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法
并配合多态使用,以获得不同的工作状态