#####################隐式继承#########################################
class parent(obj):
def im(self):
print("cool")
class child(parent):
pass
dad = parent()
son = child()
dad.im()
son.im()
'''此时,输出结果是相同的,即使child中是空代码块Pass ,但是它继承了父类所有的行为,所以可以调用im()函数'''
####################显式覆盖#########################################
class parent(obj):
def im(self):
print("cool")
class child(parent):
def im(self):
print("not cool at all")
dad = parent()
son = child()
dad.im()
son.im()
'''有时候需要让子类中的函数有不同的行为,需要覆盖父类中的某个函数,从而实现它的新功能,那么需要在子类中定义一个相同名称的函数即可。
#################super的使用,确定父类定义的内容运行之后还是之前修改行为,首先像上例一样覆盖函数
class parent(obj):
def im(self):
print("cool")
class child(parent):
def im(self):
print("not cool at all")
super(child,self).im()
dad = parent()
son = child()
dad.im()
son.im()
'''输出结果:
cool-----------------父类输出
not cool at all-------------子类print输出
cool-----------------使用内置函数super访问父类并输出父类函数im