一、面向对象三大特征之多态:
1.多态与多态性:
多态:一类事物有多重形态,如动物:人类、狗类、猪类
多态动态绑定:在继承的背景下使用时,有时称为多态性。指的是同一个方法,在不同的类中(被不同的对象调用时)呈现出不同的效果。
比如:老师.下课铃响了(),学生.下课铃响了(),老师执行的是下班操作,学生执行的是放学操作,虽然二者消息一样,但是执行的效果不同。
多态性是指在不考虑实例类型的情况下使用实例。
2.多态性分为:
静态多态性:
动态多态性:
对不同类的对象使用同样的操作,返回的结果是不同的。
多态意味着就算不知道变量所引用的对象类是什么,还是能对它进行操作,而它也会根据对象(或类)类型的不同而表现出不同的行为。
如何实现多态:
两种方式:
1.使用继承的方式,并且导入abc模块:
在父类中指明父类继承元类meatclass=abc.ABCMeat,并且在被使用的相同方法上面添加装饰器@abstractmethod,表明该子类中必须定义这种同名方法,否则报错。
- 鸭子类型。
形态像鸭子,走路像鸭子。。行为像鸭子的称为鸭子类型,即多个类中的方法都类似,就叫鸭子类型。即都包含相同方法名。