就是把父类里面有的函数重新改写一下。
例如,因为子类重写了父类的方法,所以子类有101行代码,父类有100行代码,父类子类中这100行代码是一样的,只有1行是不同的。因为子类方法已经重写了父类的方法,所以不可以用继承。
想实现调用父类的方法输出,也可以调用子类的方法输出,又不想拷贝100行父类的代码。
只能用超继承在子类里面实现两个方法:一个是父类的方法,一个是子类自己的方法。
超继承就是子类先重写父类的方法,然后用“super(MathMethod_1,self).add()
”这样超继承的方式来写。
超继承的目的:就是改写父类的方法,同时保留父类里面的代码。这样既能调用父类的方法输出又可以调用子类的方法输出。父类的特性我有,同时我也有自己的新特性。
class MathMethod:
def __init__(self,a,b):
self.a=a
self.b=b
def add(self):
print("我是父类的add方法",self.a+self.b)
def sub(self):
return self.a-self.b
class MathMethod_1(MathMethod):
def divide(self):
return self.a/self.b#这个在继承里叫做拓展,它同时拥有__init__方法,加法,减法和除法。
#叫做类里面的继承拓展。
#拓展就是写个父类里面没有的函数。
def add(self):#重写 重写就是把父类里面有的函数重新改写一下
# print(self.a+self.b)
super(MathMethod_1,self).add()#超继承
#MathMethod_1是子类名,self是实例。super会顺着子类MathMethod_1找到它的父类,然后调用父类里面这个add方法。
print("我是子类的加法",self.a+self.b+10)
MathMethod_1(5,6).add()
# 输出:
# 我是父类的add方法 11
# 我是子类的加法 21