Python面向对象中,利用子类调用父类的同名方法和属性。
首先我们定义了两个父类,Master
和School
# @author: 北山啦
# FileName: 12子类调用父类的同名方法
# @time: 2022/6/5 14:54
#父类Master
class Master():
def __int__(self):
self.kongfu = '[古法煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
#父类School
class School():
def __init__(self):
self.kongfu = '[黑马煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
对于相同属性和方法的父类,子类如何来调用呢
在这里,定义Prentice类,继承了Master和School类,添加了和父类同名属性和方法
- 调用子类的属性和方法
如果调用了父类的属性和方法,父类属性会自动掩盖子类属性,股灾调用属性前,先调用自己子类的初始化
class Prentice(School,Master):
def __init__(self):
self.kongfu = '[独创煎饼果子配方]'
def make_cake(self):
self.__init__
print(f'运用{self.kongfu}制作煎饼果子')
- 调用父类属性和方法
如果调用父类方法,但是为了保障调用到的是父类的属性,必须在方法前调用父类的初始化
def make_master_cake(self):
Master.__init__(self)
Master.make_cake(self)
def make_school_cake(self):
School.__init__(self)
School.make_cake()
代码语言:javascript复制完整代码
# @author: 北山啦
# FileName: 12子类调用父类的同名方法
# @time: 2022/6/5 14:54
class Master():
def __int__(self):
self.kongfu = '[古法煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
class School():
def __init__(self):
self.kongfu = '[北山啦煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
class Prentice(School, Master):
def __init__(self):
self.kongfu = '[独创煎饼果子配方]'
'''如果调用了父类的属性和方法,弗列属性会自动掩盖子类属性,股灾调用属性前,先调用自己子类的初始化'''
def make_cake(self):
# self.__init__
print(f'运用{self.kongfu}制作煎饼果子')
'''调用父类方法,但是为了保障调用到的是弗列的属性,必须在方法前调用父类的初始化'''
def make_master_cake(self):
Master.__init__(self)
Master.make_cake(self)
def make_school_cake(self):
School.__init__(self)
School.make_cake()
beishan = Prentice()
print(beishan.make_cake())
print(beishan.make_master_cake())
print(beishan.make_school_cake())