python继承父类的属性和方法
让子类直接拥有父类的属性和方法的过程就是继承
父类 - 被继承者(又叫超类)
子类 - 继承者
在子类中添加类属性和方法
类属性和方法的添加不会因为继承而收到任何影响
添加对象属性
对象属性是怎么被继承:继承的时候因为init方法被继承,间接继承了对象属性
类中的方法的调用过程(重要)
通过类或者对象在调用方法的时候,会先看当前类中有没有这个方法,如果有就直接调用自己类中的方法;没有就看父类中有没有定义这个方法,如果父类定义了就调用父类的;父类没有定义,就看父类的父类中有没有定义…以此类推,如果 object 中没有定义才会报错!
1. super的用法
super(类, 对象) - 获取指定类的父类(对象必须是类的对象; 类默认指向当前类,对象默认是当前类的对象)
在子类的__init__方法中通过 super()去调用父类的__init__方法
示例
class Father():
def __init__(self):
self.a='12345678'
def eat (self):
print('调用父类的方法')
class Son(Father):
pass
son=Son() # 子类Son 继承父类Father的所有属性和方法
print('son.eat()',son.eat()) # 调用父类方法
print('son.a',son.a) # 调用父类属性
输出结果:
son.eat() 调用父类的方法
son.a 12345678
2. 继承父类初始化过程中的参数
class Father():
def __init__(self):
self.a=1
self.b=2
class Son(Father):
def __init__(self):
super().__init__()
def add(self):
return self.a+self.b
son=Son()
print(son.add())