面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展
(1)在类的继承中,存在父类跟子类,子类可以继承父类中所有的属性和方法,计算自己没有也可以使用父类的
class parentcls: #父类
form_1='大自然'
class childcls(parentcls): #子类继承父类
pass #子类中什么方法属性都没有
ch=childcls() #实例化一个子类
print(ch.form_1)#大自然,子类调用父类的属性所以输出结果是大自然
(2)在类的继承中,如果父类中有参数,子类继承父类,此时子类实例化的时候要传参跟父类保持一致要不会报错
(3)继承具有传递性,如果B继承A,C继承B,那么C可以继承A中所有的属性跟方法,子类没有的方法属性可以找父类,父类也没有可以找父类的父类
class A:
from_1='动物园'
class B(A):
pass
class C(B):
pass
#s实例化一个C类
c=C()
print(c.from_1) #C可以使用A中的属性,输出结果是动物园
(4)如果一个子类继承多个父类,多个父类中具有同名的方法的时候调用就近原则,python中内置属性__mro__,可以查看方法搜索顺序,确定子类调用的方法顺序
(5)父类中的私有属性不能被继承
(6)继承是单向的,子类的属性父类不能调用
(7)super()函数,超继承
super() 子类使用super()函数,继承父类的方法,如果父类的方法里是传参数的,子类方法也要正常传参数