- 面向对象三大特性: 封装,继承,多态
- 封装
- Inheritance 继承(代码重用)
- Polymorphism 多态(接口重用)
- 类中的魔法方法
- 魔法方法的执行顺序
1 在类中对数据的赋值、内部调用对外部用户是透明的
2 这使类变成了一个胶囊或容器,里面包含着类的数据和方法
3 作用:
1)防止数据被随意修改
2)使外部程序不需要关注对象内部的构造,只需要通过对外提供的接口进行直接访问
1.一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承
2. 比如CS中的警察和恐怖分子,可以将两个角色的相同点写到一个父类中,然后同时去继承它
3. 使用经典类: Person.init(self,name,age) 并重写写父类Person的构造方法,实现,先覆盖,再继承,再重构
1.多态是面向对象的重要特性,简单点说:“一个接口,多种实现”
2. 指一个基类中派生出了不同的子类,且每个子类在继承同样的方法名的同时又对父类的方法做了不同的实现
3. 这就是同一种事物表现出的多种形态
4. 比如黄种人继承了人talk这个功能,但是他说的是中文,而美国人的talk是英文,但是他们是同样的talk
作用:简单的讲就是允许父类调用子类的方法
- 作用:无需实例化直接被类调用
- 特性: 类方法只能访问类变量,不能访问实例变量
- 类方法使用场景: 当我们还未创建实例,但是需要调用类中的方法
- 调用方式: 既可以被类直接调用,也可以通过实例调用
魔法方法的标志:①被__xxx__两条下划线包围:如典型的__init__
魔法方法的执行顺序__new__ :先于__init__方法,每生成一个实例执行一次,__new__ 类方法创建实例对象 __init__:__init__方法每生成一个实例就会执行一次,初始化实例对象 __call__:后与__init__方法,C()() 使用类再加一个括号调用, C为类名称 __del__ :析构方法,删除无用的内存对象(当程序结束会自动自行析构方法)



