编写程序,按如下要求设计类: 王者荣耀是一款非常流行的即时对战类游戏,里面有很多的游戏角色可供选择。所有的角色都具有以下操作:普通攻击、技能攻击。 创建一个基类(Role),该类包括如下成员: (1)属性:普通攻击值(attackValue,整数型),技能攻击名称(skillName,字符串类型),角色名称(roleName,字符串类型),以上三个属性均为私有属性 (2)方法:普通攻击(commAttack()),技能攻击(skillAttack()) 其中:普通攻击方法显示:XXX正在使用普通攻击,攻击力为XXX。”,XXX表示具体英雄的具体角色名与攻击值。 技能攻击方法显示:XXX正在使用特殊攻击“XXX”。XXX表示具体的角色名称与技能攻击名称。 创建两个英雄角色,均继承基类 关羽类(GuanYu):普通攻击值10,技能攻击名称是“单刀赴会” 吕布(LvBu):普通攻击值15,技能攻击名称是“贪狼之握”,当使用吕布的技能攻击时,要显示:谁敢战我!!!吕布正在使用特殊攻击“贪狼之握”。 创建一个控制类(Control),该类有一个方法,该方法用于接收传入的具体的英雄角色,该方法采用多态技术实现。 当传入“关羽”时,显示如下信息: (1)当调用关羽的普通攻击方法时,在控制台显示: 关羽正在使用普通攻击,攻击力为10。 (2)当调用关羽的技能攻击方法时,在控制台显示: 关羽正在使用特殊攻击“单刀赴会”。 当传入“吕布”时,显示如下信息: (1)当调用吕布的普通攻击方法时,在控制台显示: 吕布正在使用普通攻击,攻击力为15。 (2)当调用吕布的技能攻击方法时,在控制台显示: 谁敢战我!!!吕布正在使用特殊攻击“贪狼之握”。 提示:注意在子类中可以使用super()方法使用父类的属性与方法。 求求了求求了,太难了
3条回答 默认 最新
- CSDN专家-kaily 2021-06-30 15:13关注
class Role: def __init__(self, attackValue, skillName, roleName): self.__attackValue = attackValue # 普通攻击值,整型 self.__skillName = skillName # 技能攻击名称,字符串 self.__roleName = roleName # 角色名称,字符串 def commAttack(self): print('{0}正在使用普通攻击,攻击力为{1}。'.format(self.__roleName, self.__attackValue)) def skillAttack(self): print('{0}正在使用特殊攻击“{1}”。'.format(self.__roleName, self.__skillName)) class GuanYu(Role): def __init__(self): super().__init__(10, '单刀赴会', "关羽" ) class LvBu(Role): def __init__(self): super().__init__(15, '贪狼之握', "吕布" ) def skillAttack(self): print('谁敢战我!!!', end = '') super().skillAttack() class Control: def __init__(self, obj): obj.commAttack() obj.skillAttack() g = GuanYu() l = LvBu() cg = Control(p) cl = Control(l)
输出:
关羽正在使用普通攻击,攻击力为10。 关羽正在使用特殊攻击“单刀赴会”。 吕布正在使用普通攻击,攻击力为15。 谁敢战我!!!吕布正在使用特殊攻击“贪狼之握”。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 运筹学排序问题中的在线排序
- ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
- ¥30 求一段fortran代码用IVF编译运行的结果
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题