美文网首页
类继承之方法重写

类继承之方法重写

作者: 闲云野鹤_23dd | 来源:发表于2021-01-23 15:03 被阅读0次

    类继承之方法重写:

    方法重写

    含义 : 如果你的父类方法的功能不能满足子类的需求,可以在子类重写你父类的方法

    例子:
    对SDET类中 重写了do_test和do_dev 方法

    class SDET(Tester,Dev):
        def __init__(self,name, age, sex,job, language):
            Tester.__init__(self,name, age, sex,job)
            Dev.__init__(self,name,language)
    
      def do_work(self):
          print(f'{self.name}使用{self.language}编写接口测试脚本')
    
      def do_test(self):
          print(f'{self.name}执行自动化测试脚本')
    
      def do_dev(self):
          print(f'{self.name}擅长使用{self.language}语言,熟悉selenium,request,pytest等框架')` 
    

    创建对象,调用方法,可以看到调用了重写后的方法

        sdet = SDET('大明', 28, '男','测试开发','python')
        sdet.do_dev()
        sdet.eat()
        sdet.do_work()
        sdet.do_test()
    
    

    执行结果:

    大明擅长使用python语言,熟悉selenium,request,pytest等框架
    大明在吃工作餐
    大明使用python编写接口测试脚本
    大明执行自动化测试脚本
    
    

    子类对象调用父类的方法

    使用super()函数可以调用对象父类中的方法
    例子:

    super(SDET,sdet).do_test()
    
    

    多态

    1、定义一个父类(Base),实现某个方法(比如:run)
    2、定义多个子类,在子类中重写父类的方法(run),每个子类run方法实现不同的功能
    3、假设我们定义了一个函数,需要一个Base类型的对象的参数,那么调用函数函数的时候,传入Base类不同的子类对象,那么这个函数就会执行不同的功能,这就是多态的体现

    例子:
    可以看到do_t方法可根据传入的对象 去执行不同的功能
    调用相同的方法出现不同结果,这就是多态性,这在复杂的业务关系中十分重要

    def do_t(obj):
        obj.do_test()
    
    if __name__ == '__main__':
        tester = Tester('咸鱼', 25, '男', '资深测试工程师')
        sdet = SDET('大明', 28, '男', '测试开发', 'python')
        do_t(tester)
        do_t(sdet)
    

    执行结果:

    咸鱼在做测试
    咸鱼在睡觉
    大明执行自动化测试脚本
    

    相关文章

      网友评论

          本文标题:类继承之方法重写

          本文链接:https://www.haomeiwen.com/subject/tpmwoktx.html