面向对象下
面向对象三大特性
- 封装 确保对象中数据的安全
- 继承 保证了对象的扩展性
- 多态 保证了程序的灵活性
一、鸭子类型与多态
(一)鸭子类型
- python崇尚鸭子类型,是描述一种动态语言
- 动态语言不检查类型,只要方法存在,参数正确,不严格要求参数的类型,就可以调用,这就是动态语言的鸭子类型,它不要求严格的继承体系,一个对象只要看起来像鸭子,那它就可以被看成是鸭子
(二)多态
定义
- 定义时的类型和运行是的类型不一样称为多态
- 多态是面向对象的三大特性之一。从字面理解就是多种形态, 一个对象可以以不同形态去呈现
特点
- 只关心对象的实例方法是否同名,不关心对象所属的类型;
- 对象所属的类之间,继承关系可有可无;
优点
- 多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强;
- 多态是调用方法的技巧,不会影响到类的内部设计
- 允许不同对象对同一操作做出类似的反应
- 多态一种类型具有多种类型的能力;允许不同的对象对同一消息做出灵活的反应;以一种灵活的方式对待可使用的对象;非动态语言必须通过继承和接口来实现