继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为,一个类型继承另一个类型,当前类型就会拥有另一个类型的公共的属性和方法,达到代码的重复使用的目的。这非常类似大自然中的物种遗传。
继承的语法:
>>>class类型(被继承的类型):
>>> pass
继承中出现的术语:
父类:被继承的类,也称为基类、超类
子类:当前类,也称为派生类
子类继承父类,体现的时A isa B的关系
子类继承父类,就可以使用父类中所有的公开的属性和方法
继承链
A继承B,B继承C,C继承D
A直接继承了B,间接继承了C,D;此时A创建的对象,可以同时使用B,C,D中所有公开的属性和方法
多继承
python中,一个类型,可以同时继承多个类型,同时拥有所有继承类型的所有公开的属性和方法
备注:在进行代码设计的过程中,可能会出现多继承,所以尽量不要在父类中定义相同名称的属性或者方法
备注2:如果父类中出现了相同名称的属性和方法,在使用的时候子类调用时会优先继承优先调用。
方法重写:
子类在自己类中重新定义父类中已经存在的方法,在执行该方法时,如果子类中没有重写就直接调用父类的方法,如果子类重写了该方法,就直接调用子类重写的方法!
子类中,访问父类的属性和方法:
>>>class User(Person):
>>>def __init__(self, name, age):
#直接通过父类的类名称调用父类的属性和方法
>>>Person.__init__(name, age)
#通过super()来调用父类的属性和方法
>>>super().__init__(name, age)
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以分隔符先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。其中父类又叫超类或基类,子类又叫派生类。
父类是子类的一般化,子类是父类的特化(具体化)。
继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。
继承避免了对一般类和特殊类之间共同特征进行的重复描述。
继承的意义,在我看来,继承极大提升了代码的复用性,间接提升了代码的可读性,使程序的结构更加简洁明了