python面向对象
面向对象:
|–什么是面向对象
|–类、什么对象,类和对象
|–类的定义
|–类的变量和方法都叫类成员
|–静态的特征__init__()初始化这些属性
|–动态的行为动作 使用函数模拟 方法(method)
调用属性或者方法
对象.属性名称
对象.方法([参数列表])
|–面向对象的三大特征:
|–封装
广义的封装指的是,将细节封起来,提供一个公开的,好用的方式让大家使用。而在面向对象的封装是特指:
1、将属性和方法,封装到一个类或多个类,需要使用的时候通过对象调用相应的属性或者方法。
2、还可以在达到安全的目的下将累的属性封装隐藏起来(将属性私有化),再提供公开的方法(getter和setter)来访问的行为!!
在python中要私有化一个属性,在属性前面加上两个下划线username–>__username
第二种封装方法:
property函数:
第三种封装方法
使用装饰器property完成get方法的装饰(注意:函数名称建议就是私有前的属性名称)
|–多态
|–继承
继承:类与类之间也存在一种继承的关系
class Son (RichMan) : #表示Son继承RichMan,RichMan类 是Son类的父类(超类\基类)
#Son类是RichMan子类
注意:继承父类的时候,并不是,所有的属性和方法都会继承! ! !而是只能继承公开的方法和属性
除了私有属性和方法,都能被继承
方法重写\覆盖(override )
在继承基础上,如果子类方法父类的方法不能满足自已使用的时候,那么就重写这个方法
注意:覆盖时:方法名称和参数必须一模-样
super:关键字和python多继承
python支持多继承:class Son (RichMan, object, Xxxxx, XXX)
python运行一个类有多个父类
新式类广度优先
旧式类深度优先
super关键字:是一个指针,默认指向父类,在子类中调用父类的方法或者属性。
多态:
多态:指的就是对象的多种状态。多态是在继承的基础上而言。
分类引用指向子类实例的现象,把这种现象叫做多态
ArrayList al = new ArrayList() ;
List ls = new ArrayList() ; #面向对象的语言中,运行父类对象指向子类实例
注意:在弱数据类型中,天生支持多态!