美文网首页
类的继承

类的继承

作者: 闲云野鹤_23dd | 来源:发表于2021-01-22 18:49 被阅读0次

继承

类可以继承,继承是指 在创建类(子类)的时候 可以指定继承一个已存在的类(父类),这样子类拥有父类的所有方法和属性

例子:
父类中的初始化方法需要在子类实现,可以使用super()调用父类 中的初始化方法

继承 : 继承那个类 就写那个类

继承之后 子类 拥有父类中的属性 和 方法

 class Tester(Human):

def __init__(self, name, age, sex,job):
    super().__init__(name, age, sex)
    self.job = job    

def do_test(self):
    print(self.name+'在做测试')
    self.sleep()` 

根据子类创建对象,不管父类还是子类的方法都可以调用

tester = Tester('咸鱼', 25, '男','资深测试工程师')
    tester.do_test()
    tester.eat()
    tester.sleep()` 

多继承

含义: 子类 可以继承多个父类

语法:
需要注意括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索,以左边类中的最早出现的方法为准

class 子类名(父类1, 父类2, 父类3...):
    ...

例子:
新建一个 Dev类
再新建一个SDET类 继承 Tester类 和 Dev类

class Dev:
    def __init__(self,name, language):
        self.language = language
        self.name = name

    def do_dev(self):
        print(f'{self.name}擅长使用{self.language}语言写程序')

# SDET(Software Development Engineer in Test)也被称为测试开发工程师 
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}编写接口测试脚本')` 

新建SDET对象并调用
多继承的子类对象 可以任意调用父类中方法及属性

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

结果:

大明擅长使用python语言写程序
大明在吃工作餐
大明使用python编写接口测试脚本
大明在做测试
大明在睡觉

练习:

新建Tesla类,继承Car类,
添加 color,price属性,
添加showAll方法:先调用父类中的show方法,再打印 color,price属性的值
新建Tesla 类 的 对象 modelx , 调用 showAll方法

    #创建一个Car类,有三个属性name,no,speed, 编写三个方法:
    class Car(object):
        def __init__(self,name,no,speed):
            self.name =name
            self.no =no
            self.__speed =speed

    # show():输出每一个属性的值
        def show(self):
            print(self.name,self.no,self.__speed)


    # start(): 启动,speed=100,输出车名,启动了
    def start(self):
        self.speed=100
        print("%s启动了"%(self.name))

    #run(): 行驶,输出车名和当前速度
    def run(self):
            print("%s行驶了,当前速度%skm/h" % (self.name,self.speed))

    #stop(): 刹车,speed=0,输出车名,刹车当前速度
    def stop(self):
       self.speed=0
       print("%s刹车了,当前速度%skm/h" % (self.name,self.speed))

    #创建一个car对象,依次 调用show(),start(),run(),stop()方法
    def __maintenance(self):
        print("%s:已更换机油和空气滤芯"%(self.name))
    def lube(self):
        self.__maintenance()
        print('油加满了')




 class Tesla(Car):
    def __init__(self, name, no, speed, color, price):
        self.color = color
        self.price = price
        super().__init__(name, no, speed)

def showAll(self):
    self.show()  # 调用父类中的show方法
    print('%s的颜色为%s,价格为%s' % (self.name, self.color, self.price))

def showAll(self):
    self.show()  # 调用父类中的show方法
    print('%s的颜色为%s,价格为%s' % (self.name, self.color, self.price))
if __name__ == '__main__':
   # 新建Tesla 类 的 对象 modelx 并传参,包含继承类参数
    modex = Tesla('jeep轿车', '沪A1111', 100, 'red', '20dollers')
    modex.showAll()  # 调用 showAll方法
    modex.show()  # 调用继承类Car的show方法
image.png

相关文章

  • 一阶段day16-01面向对象

    Python中类支持继承,并且支持多继承 一、继承 1、什么是继承 父类(超类):被继承的类子类:继承父类的类继承...

  • 2018-10-19面向对象和pygame

    类的继承 python中的类支持继承,并且支持多继承 1.什么是继承 父类(超类):被继承的类子类:继承的类继承就...

  • python零基础13:类的继承和定制

    类的定制和继承是什么? 类的继承 类的定制 类的继承要怎么写? 继承基础语法 继承之多层继承 继承的多重继承 类的...

  • Day16总结:面向对象和pygame

    类的继承 python中类支持继承,并且支持多继承 1.什么是继承 父类(超类):被继承的类子类:去继承父类的类继...

  • python 面向对象和pygame

    一、类的继承 python中类支持继承,并且支持多继承 1.什么是继承父类(超类):被继承的类子类:去继承父类的类...

  • day16

    类的继承 python中的类支持继承,并且支持多继承() 1.什么是继承 父类(超类):被继承的类子类:去继承的类...

  • 10.19 day16面向对象和pygame

    1.类的继承python中类 支持继承,并且支持多继承()1.什么是继承父类(超类):被继承的类 子类:继承的类,...

  • 2018-10-19继承、重写、内存管理和认识pygame

    一、类的继承 Python中类支持继承,并且支持多继承 1、什么是继承 父类(超类):被继承的类子类:去继承父类的...

  • day16

    一、类的继承python中类支持继承,并且支持多继承 1.什么是继承父类(超类):被继承的类子类:去继承父类的类继...

  • Day16-面向对象和pygame

    一、类的继承 python中类支持继承,并且支持多继承 1.什么是继承 父类(超类):被继承的类 子类:去继承父类...

网友评论

      本文标题:类的继承

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