• 面向对象-重写父类方法


    继承父类方法的几种方式:

    一.重写父类的方法:

    父类:

    class Zll():   #父类
        def smile(self):
            print('哈哈哈')

    子类:

    class Xz(Zll):
        def smile(self):  #拥有与父类相同的方法,即重写父类的方法
            print('呵呵呵呵')

    二.重写父类方法:在父类基础上,再加新的功能:

    方式一:可通过调用父类方法,然后再写自己的方法来实现(特征:父类有这个方法,但是它的功能不够完善,给这个方法在原有基础上再添加一些新功能)。

    子类:

    class Xz(Zll):
        def smile(self):  #先重写父类的方法
            Zll().smile()   #,先实例化Zll(),调用了父类方法
            print('呵呵呵呵')  #然后再加入自己方法的内容

    方式二:可通过调用父类方法,然后再写自己的方法来实现(特征:父类有这个方法,但是它的功能不够完善,给这个方法在原有基础上再添加一些新功能)。

    用super()来实现

    子类:super(自己的类名,self)

    class Xz(Zll):
        def smile(self):  #先重写父类的方法
            super(Xz,self).smile()  #这个自动帮你找到父类,然后调用相同的方法,所以存在多个父类时,有差别,请看下面分解
            print('呵呵呵呵')  #然后再加入自己方法的内容

    三.多继承:多继承时,直接用父类实例化.方法来调用,即:Zll().smile(),要分别指出调用哪个父类的方法

    # coding=utf-8
    class Zll():
        def smile(self):
            print('哈哈哈')
    
    class Dcg():
        def smile(self):
            print('啊啊啊啊啊')
    
    class Lw():
        def smile(self):
            print('嘿嘿嘿')
    
    class Xz(Zll,Dcg,Lw):  #多继承,及有多个父类
        def smile(self):   #重写父类的方法
            Zll().smile()  #调用Zll的smile方法
            Dcg().smile()  #调用Dcg的smile方法,即分别写调用哪个父类方法
            print('呵呵呵')  #自己的方法

    使用super()来写,修改父类方法(比较常见):

    # coding=utf-8
    class Zll():
        def smile(self):
            print('哈哈哈')
    
    class Dcg():
        def smile(self):
            print('啊啊啊啊啊')
    
    class Lw():
        def smile(self):
            print('嘿嘿嘿')
    
    class Xz(Zll,Dcg,Lw):  #多继承,及有多个父类
        def smile(self):   #重写父类的方法
            super(Xz,self).smile()  #这个自动帮你找到父类,如果多个父类有相同的方法时,默认继承第一个相同方法
            print('呵呵呵')  #自己的方法
  • 相关阅读:
    Python3安装和虚拟环境配置
    CentOS中nginx安装部署
    CRM项目的整理---第一篇
    软件代码的发布
    ansible的roles使用
    ansible中的playbook脚本的介绍与使用
    ansible模块的介绍与使用
    Ansible的参数介绍
    ansible的介绍与安装
    linux网络配置,查看IP地址
  • 原文地址:https://www.cnblogs.com/fancyl/p/9100506.html
Copyright © 2020-2023  润新知