zoukankan      html  css  js  c++  java
  • 面向对象-重写父类方法

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

    一.重写父类的方法:

    父类:

    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('呵呵呵')  #自己的方法
  • 相关阅读:
    log4net 发布到生产环境不写日志的解决方法--使用 NLog日志
    centos 下Supervisor 守护进程基本配置
    centos 7 下安装Nginx
    Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持
    centos之Haproxy 负载均衡学习笔记
    改进初学者的PID-介绍
    实现Modbus TCP多网段客户端应用
    有一种亲切是手机
    实现Modbus ASCII多主站应用
    爱好
  • 原文地址:https://www.cnblogs.com/fancyl/p/9100506.html
Copyright © 2011-2022 走看看