• 『无为则无心』Python面向对象 — 53、对Python中封装的介绍


    1、继承的概念

    在Python中,如果两个类存在父子级别的继承关系,子类中即便没有任何属性和方法,此时创建一个子类对象,那么这个子类对象会拥有父类中所有属性和方法的使用权,这就是在Python中的继承概念。

    在Python测继承中,我们一般会抽取出一类事物中,所具有相同的特征属性和行为到一个类中,这样的类我们称之为父类,也可以叫超类、基类。

    凡是通过继承创建出来的类,我们称之为子类或者衍生类,可以直接继承父类中的属性和方法。

    2、继承的好处

    • 继承最大的作用就是简化代码,提高了代码的复用性,提高软件开发效率。
    • 继承的出现让类与类之间产生了关系,提供了多态的前提。

    3、继承体验

    Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法,具体如下:

    python
    # 继承:子类默认继承父类的所有属性和方法
    # 1. 定义父类Parent
    class Parent(object):
        def __init__(self):
            self.num = 1
    
        def info_print(self):
            print(self.num)
    
    
    # 2. 定义子类Child 继承父类Parent
    class Child(Parent):
        pass
    
    
    # 创建Child类实例,调用父类Parent中的方法和属性
    ch = Child()
    print(ch.num)  # 1
    ch.info_print()  # 1

    说明:在Python中,所有类默认继承object类,object类是顶级类或基类,其他子类都是object的派生类。

    4、单继承

    单继承:一个父类只被一个子类继承,就叫做单继承。

    故事主线:一个煎饼果子老师傅,在煎饼果子界摸爬滚打多年,研发了一套精湛的摊煎饼果子的技术。师父要把这套技术传授给他的唯一的最得意的徒弟。

    python
    # 1. 师父类,属性和方法
    class Master(object):
        def __init__(self):
            self.gongfu = '[古法煎饼果子配方]'
    
        def make_cake(self):
            print(f'运用{self.gongfu}制作煎饼果子')
    
    
    # 2. 定义徒弟类,继承师父类
    class Prentice(Master):
        pass
    
    
    # 3. 创建对象tudi
    tudi = Prentice()
    # 4. 对象访问实例属性
    print(tudi.gongfu)  # [古法煎饼果子配方]
    # 5. 对象调用实例方法
    tudi.make_cake()  # 运用[古法煎饼果子配方]制作煎饼果子

    5、多继承

    故事推进:徒弟是个爱学习的好孩子,想学习更多的煎饼果子技术,于是搜索到学院派煎饼果子,决定学院学习更多的煎饼果子技术。

    所谓多继承意思就是一个类同时继承了多个父类。

    python
    # 1.创建师父类,属性和方法
    class Master(object):
        def __init__(self):
            self.gongfu = '[古法煎饼果子配方]'
    
        def make_cake(self):
            print(f'运用{self.gongfu}制作煎饼果子')
    
    
    # 2.创建学院派类 属性和方法
    class School(object):
        def __init__(self):
            self.gongfu = '[学院派煎饼果子配方]'
    
        def make_cake(self):
            print(f'运用{self.gongfu}制作煎饼果子')
    
    # 2. 定义徒弟类,继承师父类 和 宗师类
    class Prentice(School, Master):
        pass
    
    
    # 3. 创建对象tudi
    tudi = Prentice()
    # 4. 对象访问实例属性
    print(tudi.gongfu)
    # 5. 对象调用实例方法
    tudi.make_cake()
    """
    输出内容:
    [学院派煎饼果子配方]
    运用[学院派煎饼果子配方]制作煎饼果子
    """

    总结:

    • 在Python中是支持多重继承的,也就是我们可以为一个类同时指定多个父类,如:
      python
      class Prentice(School, Master):
    • 多重继承,会使子类同时拥有多个父类,并且会获取到所有父类中的属性和方法。
    • 如果多个父类中有同名的方法,则会现在第一个父类中寻找,然后找第二个,然后找第三个,以此类推。
      (在详细唠叨一下,找第一个类,然后找这个类的父类,如果没有在开始找第二个类,然后第二个类如果有父类,再找第二个类的父类,以此类推,如有重复的父类,之前找过的类,不重复查找。)
      也就是如果一个类继承多个父类,优先继承第一个父类的同名属性和方法。
    • 在开发中没有特殊的情况,应该尽量避免使用多重继承,因为多重继承会让我们的代码过于复杂。

    __EOF__

  • 本文作者: 繁华似锦的博客
  • 本文链接: https://www.cnblogs.com/liuyuelinfighting/p/15930827.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    基于 Appium 的 Android UI 自动化测试!
    【数据结构】二叉树
    常用的电子邮件服务提供商有哪些?
    整数转罗马数字
    Linux最常用命令用法总结(精选)
    Django国际化与本地化指南
    【前端进阶——ES6基础①】ES6究竟有什么不同呢!
    使用scp把另外一台服务器上的文件夹/文件拷贝到当前服务器
    这有清理C盘空间的妙招,学会了就不怕内存满了
    新技术的成熟、商业模式的完备,产业互联网的落地提供了土壤
  • 原文地址:https://www.cnblogs.com/liuyuelinfighting/p/15930827.html