深入解析:面向对象基础(封装)和 面向对象高级(继承以及多态)

1.面向对象和面向过程

①面向对象

注重对象 --- 找一个专业的人干

②面向过程

注重步骤 --- 自己一步步干

2.类和对象概念

①类:

是一类事物的统称,是一个抽象的概念

②对象

是类的具体体现,是一个看得见摸得着的实体

③关系

先有类,再根据类创建多个对象

3.类和 对象Python执行

①定义类

class类名(object):

成员属性:本质是特殊的变量

成员方法:本质是特殊的函数

②创建对象

对象名 =类名()

③self关键字

指代对象自己,谁调用self所在的方法,self就代表谁

④对象调用成员途径

对象名.成员手段名()

⑤对象调用成员属性

对象名.成员属性名()

⑥成员属性的添加和获取

1.类外

添加:

对象名.成员属性名 = 值

获取:
对象名.成员属性名

2.类内

添加:

self.成员属性名 = 值

获取:

self.成员属性名

4.魔法技巧

格式:

_ _方法名_ _()

魔法之处:在不同时机下自动调用

常用的魔法方法:

1._ _init_ _()

在初始化对象时自动调用

2._ _str_ _()

在打印对象名时自动调用

3._ _del_ _()

在删除对象时自动调用

5.私有属性

1.私有属性

_ _属性名

2.私有方法

_ _方法名

6.什么是封装

1.把属性和方法放到类中,通过对象访问即可

2.把属性和方法放到类中,并且添加私有权限,对外献出公共的访问接口

二.面向对象高级

1.继承

①什么是继承

一个类自动拥有了另一个类的公有属性和方法,那么这就一定应用了继承

②继承的好处

代码复用性更强,同时也能实现层次开发

2.核心概念

①继承:

一个类从另一个已有的类获得其他成员相关特性,就叫做继承

②派生:

从一个已有的类产生新生的类,叫做派生

③父类:

也叫做基类,指已有被继承的类

④子类:

叫做派生类或扩展类

⑤扩展:

在子类中增加一些自己特有的特性,叫做扩展,没有扩展,继承也将失去意义

⑥单继承:

一个类只能继承一个其他类,不可继承多个,也是大多数面向对象语言的特性

⑦多继承:

一个类同时继承多个类

⑧注意:

父子孙层级关系就是多继承和多层继承不一样,多层继承说的

3.单继承的格式

class子类名(父类名):

pass

4.多继承的格式

class子类名(父类名1,父类名2):

pass

5.有继承关系后知识点:

1.重写

①重新编写从父类继承下来的方法

②重写后子类如果调用的有和父类同名的方法,默认优先访问的时子类自己的

2.重写后如何调用父类的同名办法

①super(当前子类名.self)父类技巧名()

②父类名.父类方法名(self)

优势:

灵活,任意父类的同名方法都能够访问

3.方法查找顺序

①_ _mro_ _属性

②mro()方法

三.多态

1.什么是多态,以及多态的好处

多态就是①什么

同种事物的不同形态

②多态的好处

扩展性强,灵活性强

2.多态必须满足的条件

①有继承

②有重写

③有父类引用指向子类对象

3.Python伪多态

①是其动态特性和鸭子类型环境的体现

②Python由于缺乏编译时的类型检查和强制接口约束,被称为伪多态

③拓展:

1.类型声明:

途径名(变量名:类型名)

2.类型判断:

isinstance(对象类型)

四.补充封装的内容

1.类属性

1.在类中方法外定义的属性,就是类属性

2.类属性和成员属性的区别

1.定义位置不同

①类属性定义在类中的手段外 类名.类属性名 = 初始值

②实例属性经过对象或者self定义

1.对象名.实例属性名 = 初始值

2.self.实例属性名 = 初始值

2.所属对象不同

①类属性属于整个类,这个类创建的所有对象都能访问

②实例属于每个对象自己

3.修改访问不同

①类属性修改使用:

类名.类属性名 = 新值

2.类方法@classmethod

1.类技巧主要就是为了间接访问 类属性使用的

2.类方法和成员方法的区别

①定义方式不同

1.类方法时需要添加@class method

2.实例方法直接定义即可

②第一个形参不同

1.类方法的第一个形参是:cls

2.既不要cls,也不要self

③相同点

都可以直接使用类名调用

posted @ 2026-01-12 16:27  clnchanpin  阅读(4)  评论(0)    收藏  举报