• python学习笔记(25)-继承


    #继承
    class RobotOne: #第一代机器人
        def __init__(self,year,name):
            self.year=year
            self.name=name
        def walking_on_ground(self):
            print(self.name+'只能在平地上行走,有障碍物就会摔的')
        def robot_info(self):
            print("{0}年产生的机器人{1},是中国研发的".format(self.year,self.name))
    
    # 为了多继承写的第二代机器人
    # class RobotTwo(RobotOne): #第二代机器人,继承了第一代了类
    #
    #     def walking_on_ground(self):  #子类里面的函数名和父类函数名重复的时候,就叫重写
    #         print(self.name+'可以在平地上行走')
    #
    #     def walking_avoid_block(self):  #父类没有,子类有,叫拓展
    #         #想在子类的函数里面调用父类的一个函数
    #         self.robot_info()
    #         print(self.name+"可以避开障碍物")
    
    # class RobotTwo: #第二代机器人,
    #     def __init__(self,year,name):
    #         self.year=year
    #
    #     def walking_on_ground(self):  #子类里面的函数名和父类函数名重复的时候,就叫重写
    #         print(self.name+'可以在平地上行走')
    #
    #     def walking_avoid_block(self):  #父类没有,子类有,叫拓展
    #         #想在子类的函数里面调用父类的一个函数
    #         self.robot_info()
    #         print(self.name+"可以避开障碍物")
    
    #为了超继承写的第二代机器人
    class RobotTwo(RobotOne): #第二代机器人,
    
        def walking_on_ground(self):  #子类里面的函数名和父类函数名重复的时候,就叫重写
            super(RobotTwo,self).walking_on_ground()  #超继承,会继承父类的该方法
            print(self.name+'可以在平地上行走')
    
    
    r= RobotTwo("1990","小王")
    r.robot_info()
    r.walking_on_ground()
    #r.walking_avoid_block()
    #继承的类 是否要用到初始化函数 请看是否从父类继承了。
    #父类有的,继承后,可以直接拿过来用
    #父类有的,子类也有重名的函数,那么子类的实例就优先调用子类的函数
    
    #面试的时候的继承:多继承和超继承
    
    #第三代机器人,多继承
    # class RobotThree(RobotOne,RobotTwo): #第三代机器人,继承了第一代和第二代的了类
    #     def jump(self):
    #         print(self.name+"单膝跳跃")
    #
    # r3=RobotThree("2000","大王")
    # r3.jump()
    # r3.walking_on_ground()  #会摔倒,RobotOne在前,RobotTwo在后
    #
    # r3=RobotThree("大王")
    # r3.walking_on_ground()  #不会摔倒,RobotTwo在前,RobotOne在后
    
    #具有两个父类的属性和方法,如果两个父类具有同名方法的时候,就近原则。
    #多继承的时候,继承的类的初始化值不一致问题???
    #子类调用函数就近原则,初始化函数也包括在内。
    
    #超继承
    #改写父类的方法,同时还要使用父类的方法,使用超继承。
    #super关键字会顺着子类的名字去找到父类的方法,调用父类里面的重名方法
  • 相关阅读:
    css常用格式
    css选择器
    D1-mini esp8266的资料备份
    总结esp8266刷Python的完整的步骤(终极总结)
    用Python利用pyFirmata控制Arduino实现Blink
    microPython 的逗比报错的问题
    python+opencv+Face++实现人脸识别比对
    TypeError: slice indices must be integers or None or have an __index__ method
    opencv识别验证码的教程和资料
    校园网一键登录后台
  • 原文地址:https://www.cnblogs.com/wuzm/p/11977580.html
Copyright © 2020-2023  润新知