Day15-面向对象特性
一、 封装
1、 直接调用
2、 私有化
二、继承
1、单继承

2、多继承



print(Son.__mro__) # 通过mro方法可以程序执行或者继承顺序的情况
三、方法的重写
子类的方法 覆盖 父类的方法,也称为 重写。
实际的开发中,遵循开放封闭原则。我们并不会完全的重写父类的方法,而是希望同时实现父类的功能。
四、多态
1、Python崇尚“鸭子类型”。python是弱语言类型。
2、一个抽象类有多个子类(因而多态的概念依赖于继承),不同的子类对象调用相同的方法,产生不同的执行结果,多态可以增加代码的灵活度。
3、实现多态的步骤:
1)定义一个父类(Base),实现某个方法(比如:run)
2)定义多个子类,在子类中重写父类的方法(run),每个子类run方法实现不同的功能
3)定义一个函数,需要一个Base类型的对象的参数,那么调用函数的时候,传入Base类不同的子类对象,那么这个函数就会执行不同的功能,这就是多态的体现。
4、多态的意义:
(1)在程序运行过程中展现出动态的特性,在程序编译的时候无法知道调用哪个函数
(2)函数重写必须多态实现,否则没有意义
(3)多态是面向对象组件化程序设计的基础特性
注意点:Python中函数的参数是没有类型限制的,所以多态在python中的体现并不是很严谨。多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。
5、鸭子类型概念:他并不要求严格的继承体系,关注的不是对象的类型本身,而是它是否具有要调用的方法(行为)
浙公网安备 33010602011771号