面向对象

面向对象:是一种思想,在编程的过程中融入对象的概念
面向过程:关注某件事情实现的流程
面向对象:主要关注某个对象的功能
通过类实例化一个对象

class per():
    name = "人"
    age = 0
    sex = "男"
    def eat(self):
        print("吃饭了")
    def zz(self):
        print("转账")
per1 = per()

属性

per1.name = "张三"
print(per1.name)

方法

per1.zz()

构造函数:一般用于初始化对象,创建对象时赋值
注意:创建对象时就会执行,而其他函数需要调用
语法:

def    __init__(self,【参数列表】)
self.属性名 = 属性名

类属性和对象属性
每次创建一个对象就会给这个对象分配一个新的空间,这个空间有专属的对象属性
每个对象中不放置 方法代码,共用类中的方法代码
对象在访问属性的时候,如果没有这个名字的对象属性,就会去找这个名字的对象属性

self作用:self代表自己,谁调用方法就将谁带入

私有属性:命名用两个下划线开始 get、set方法调用

def setAge(self,age):
    self.__age = age
def getAge(self):
    return self.__age

面向对象的三大特征:封装、继承、多态

封装:将 属性 和 方法 封装到一个抽象的类中,对外界隐藏实现功能的细节,外界只关注功能
继承:将子类中的一些共同拥有的属性和方法放到父类中,子类只需要继承即可使用,子类只需要专注于自己特有的功能进行开发
单继承:继承之后,子类就可以使用父类的属性和方法
如果子类要调用父类的构造方法中的属性,那么子类中的构造方法中需要调用父类的构造方法,或者重写父类的构造方法
属性:谁最后赋值,谁生效
方法:如果子类中有,就使用子类中的,没有就去父类中去找
简单多继承:深度、广度
找方法:深度优先
找属性:最后执行的被赋值,后面的值会覆盖前面的值
多态:父类中同一种事物在子类中 不同的表现形式
多态的前提条件:封装 继承 重写

方法的重写:如果父类中的方法不能满足子类中的需求,那么需要将父类的方法重写,重写父类的方法后优先调用父类的方法