面向对象
多态
让不同的子类对象,调用相同的方法,产生不同的结果。
举例演示多态
定义角色类
# 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