#子类通过继承覆盖父类方法
继承: extends
class Role:
def __init__(self, name, weapon):
self.name = name
self.weapon = weapon
def show_me(self):
print("我是%s,用的是%s武器"%(self.name,self.weapon))
class Warrior(Role): # Role是Warrior的父类
# 默认调用方法的顺序是从子到父(就近原则)
# 定义子类的init方法, 覆盖了父类的init方法
def __init__(self, name, weapon, ride): # ride:坐骑
# self.name = name 与父类中的init逻辑重复
# self.weapon = weapon
# 解决方案:在子类中调用父类的init方法
Role.__init__(self, name, weapon)
self.ride = ride
def attack(self, who): # 子类特有的方法
print("我是 %s,我在和 %s 进行肉♂搏"%(self.name,who))
class Mage(Role): # Role是Mage的父类
def attack(self, who): # 子类特有的方法
print("我是%s,我在和%s进行远程消耗"%(self.name, who))
if __name__ == '__main__':
lb = Warrior("吕布", "方天画戟", "赤兔马")
print(lb.name, lb.weapon, lb.ride)
lb.show_me()
lb.attack("貂蝉")
gl = Mage("诸葛亮", "羽扇")
gl.show_me()
gl.attack("黄月英")
python-----子类通过继承覆盖父类方法
最新推荐文章于 2024-09-04 10:31:20 发布