• python笔记之面向对象


    目录

    一、面向对象(OOP--Object Oriented Programming)

    二、面对对象的三大特征

    1、封装

    2、继承

    3、多态

    三、函数重载(overload)


    一、面向对象(OOP--Object Oriented Programming)

    ——把解决问题的事物分为多个对象 ,对象具备解决问题过程中的行为

            面向对象编程有两个非常重要的概念:类和对象

            对象是面向对象编程的核心,具有相似特征和行为的事物的集合统称为类(class)。对象是根据类创建的,一个类可以对应多个对象

    二、面对对象的三大特征

    1、封装

            ——把客观事物抽象并封装成对象(将某些部分隐藏起来,在程序外部看不到,无法调用)

    为了安全考虑,往往需要将对象的属性就行私有化,提供对应的访问方式 ,即封装。

    封装离不开私有化,私有化是指将某个对象限定在某个自己认定的范围内

    私有化的方法:将准备私有化的属性对象前面加双下划线__

    如属性name--> __name,方法eat --> __eat

    get和set方法:

    将属性私有化后,可以提供公开的get和set方法。来合法的访问和修改私有化的属性

    python中,如果使用_来修饰属性或者成员、变量。表示该属性不能被其他模块使用!!!

     

    2、继承

            ——解决代码复用问题

    面向对象中,类与类之间也存在着一种继承关系。

    被继承的类:父类、超类(super class)、基类

    继承类:子类

    当子类继承父类时,该子类会自动的继承父类中能被继承的成员

    私有的类成员,无法被子类继承。

    python中,若子类存在初始化函数,一定要在有效代码的第一行首先手动调用父类的初始化

    在python,可以实现多继承,通过逗号,可以实现多继承。

    1. class 类名称([父类1 [, 父类2……]]):
    2. pass

    3、多态

    ——在继承的基础上,父类引用指向子类实例的现象,被称为多态

    python天生支持多态,时刻体现着多态

    1. List # 线性表 总类
    2. ArrayList # 基于数组实现的一个线性表 ArrayList 继承了 List
    3. ArrayList ls = new ArrayList(); // 创建一个ls对象
    4. # 可以使用多态实现
    5. List ls = new ArrayList();

    三、函数重载(overload)

    存在多个同名称的函数,函数名称相同,参数的个数或者类型不同,从而在调用时,会自动调用对应方法的这种现象,叫做函数重载。

    python是弱数据类型编程语言,所以不存在函数重载!!!

    最终,只能保留最后一个同名称函数。

    如果一定要实现重载,则可以通过装饰器等手段想办法实现

    函数重载(overload)、函数重写(overwrite)、函数覆盖(override)的区别

    函数重载(overload):函数名称相同的一批函数,函数的参数和类型不同,从而引起调用时,会调用对应函数的现象。

    函数重写(overwrite)|函数覆盖(override):在继承的基础上,如果子类继承了父类的某些或者某一个方法,发现某一个方法难以满足自身使用时,就会重写这个方法。

  • 相关阅读:
    简单聊一聊中国的房地产
    Eureka 入门教程
    【Python刷题篇】——Python入门 09 字典(上)
    【YOLOv5/v7改进系列】引入RT-DETR的RepC3
    应用层DoS
    Java+Swing+mysql高校教材管理系统
    【Leetcode】1030. Matrix Cells in Distance Order
    什么是vue?
    记一次老版本perforce的迁移历程
    Ubuntu20.04安装Beyond Compare 4.4.7
  • 原文地址:https://blog.csdn.net/weixin_68256171/article/details/138010492