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、鸭子类型概念:他并不要求严格的继承体系,关注的不是对象的类型本身,而是它是否具有要调用的方法(行为)

 

posted @ 2023-03-30 00:34  Py小阿白  阅读(23)  评论(0)    收藏  举报