【Python基础】13.面向对象-多态

面向对象

多态

让不同的子类对象,调用相同的方法,产生不同的结果。

举例演示多态

定义角色类

# 1. 角色类 (Character)
# 属性:姓名、年龄、性别、种族、战斗力等
# 方法:自我介绍、展示战斗力、发动攻击等

class Character:
    def __init__(self, name, age, gender, race, combat_power):
        self.name = name
        self.age = age
        self.gender = gender
        self.race = race
        self.combat_power = combat_power

    def introduce(self):
        print("我是%s,我的战斗力是%d" % (self.name, self.combat_power))

    def show_combat_power(self):
        print("我的战斗力是%d" % self.combat_power)

    def attack(self):
        print("%s,发动攻击" % self.name)

定义战士类

# 2. 战士类 (Warrior)
# 继承自角色类
# 属性:所属阵营、擅长技能、武器等
# 方法:进行战斗、学习新技能、升级等

class Warrior(Character):

    def __init__(self, camp, skill, wep, name, age, gender, race, combat_power):
        super().__init__(name, age, gender, race, combat_power)
        self.camp = camp
        self.skill = skill
        self.wep = wep

    def fight(self):
        print("%s,开始战斗" % self.name)

    def learn_new_skill(self):
        print("%s,学习新技能" % self.name)

    def upgrade(self):
        print("%s,升级" % self.name)

定义敌人类

# 4. 敌人类 (Enemy)
# 继承自角色类
# 属性:目标、弱点、背景故事等
# 方法:发动攻击、被击败、讲述动机等

class Enemy(Character):
    def __init__(self, target, weakness, background_story, name, age, gender, race, combat_power):
        super().__init__(name, age, gender, race, combat_power)
        self.target = target
        self.weakness = weakness
        self.background_story = background_story
    # 重写attack方法
    def attack(self ):
        print("%s,发动攻击" % self.name)
        self.target.combat_power -= 1000
        print("%s,被攻击后的战斗力是%d" % (self.target.name, self.target.combat_power))

    def be_defeated(self):
        print("%s,被击败" % self.name)

    def tell_motivation(self):
        print("%s,讲述动机" % self.name)

创建对象并调用方法

sun_wu_kong = Warrior("孙悟空", 500, "男", "赛亚人", 10000, "天神", "金箍棒",20000)
fu_li_sa = Enemy(sun_wu_kong, "没有", "背景故事", "弗利萨", 500, "男", "赛亚人", 10000)
fu_li_sa.attack()

查看结果

弗利萨,发动攻击
赛亚人,被攻击后的战斗力是19000
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值