类的继承派生

一、什么是继承 I:继承是一种创建新类的方式,新建的类可称为子类或派生类,父类又可称为基类或超类,子类会遗传父类的属性 II:需要注意的是:python支持多继承 在Python中,新建的类可以继承一个或多个父类

class Parent1(object): # 父类
  x=1111

class Parent2(object):# 父类
  pass

class Sub1(Parent1): # 单继承
  pass

class Sub2(Parent1,Parent2): # 多继承
   pass

ps1: 在python2中有经典类与新式类之分 新式类:继承了object类的子类,以及该子类的子类子子类。。。 经典:没有继承object类的子类,以及该子类的子类子子类。。。

在python3中没有继承任何类,那么会默认继承object类,所以python3中所有的类都是新式类

III:python的多继承 优点:子类可以同时遗传多个父类的属性,最大限度地重用代码 缺点: 1、违背人的思维习惯:继承表达的是一种什么"是"什么的关系 2、代码可读性会变差 3、不建议使用多继承,有可能会引发可恶的菱形问题,扩展性变差, 如果真的涉及到一个子类不可避免地要重用多个父类的属性,应该使用Mixins

二、为何要用继承:用来解决类与类之间代码冗余问题

三、如何实现继承

class OldBoyPeople:
    school = '上海校区'

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender


class student(OldBoyPeople):
    def tell_info(self):
        print(f'学生姓名:{self.name}正在上课。')


class teacher(OldBoyPeople):
    def __init__(self, name, age, gender, salary, level):
        OldBoyPeople.__init__(self, name, age, gender)
        self.salary = salary
        self.level = level

    def tell_info(self):
        print(f'老师:{self.name}的薪水是{self.salary}')
# 调用
teacher_obj = teacher('egon', '44', 'male', '10000', 5)
teacher_obj.tell_info()

猜你喜欢

转载自www.cnblogs.com/bailongcaptain/p/12670524.html