2016.9.14小程序---多态练习2
在一个游戏中,有盗贼,猎人,医生,农民,士兵几类人,这些人都有名称、等级,还可以自己介绍自己;
其中,
盗贼可以偷盗。
猎人可以打猎。
农民可以采矿。
盗贼、猎人和农民可以攻击。
农民、医生可以治疗。
士兵可以抵抗盗贼、猎人和农民等的攻击。
还有一个玩家可以控制这些角色。
设计这个系统
1、接口一:攻击
1 /**攻击接口*/ 2 interface Attack { 3 public void attack(); 4 }
2、接口二:治疗
1 /**治疗*/ 2 public interface Treat { 3 public void treat(); 4 }
3、接口三:工作
1 /**可以做的事情*/ 2 public interface DoThings { 3 public void canDo (); 4 }
4、角色属性
1 /**角色属性*/ 2 abstract class Role { 3 private String name ;//角色姓名 4 private int grade = 1 ;//角色等级,初始为1 5 private String job ;//角色职业 6 7 public String getJob() { 8 return job; 9 } 10 public String getName() { 11 return name; 12 } 13 public int getGrade() { 14 return grade; 15 } 16 public void setGrade(int grade) { 17 this.grade = grade; 18 } 19 public void setName(String name) { 20 this.name = name; 21 } 22 public void setJob(String job) { 23 this.job = job; 24 } 25 26 //介绍自己 27 abstract void introduce(); 28 }
5、盗贼
1 /**角色--盗贼*/ 2 public class Thieves extends Role implements DoThings,Attack{ 3 4 @Override 5 void introduce() { 6 // TODO Auto-generated method stub 7 System.out.println("我是盗贼"); 8 } 9 @Override 10 public void canDo() { 11 System.out.println("(盗贼)我可以偷盗"); 12 } 13 14 @Override 15 public void attack() { 16 System.out.println("(盗贼)我可以攻击"); 17 18 } 19 }
6、猎人
1 /**角色--猎人*/ 2 public class Hunter extends Role implements DoThings,Attack{ 3 4 @Override 5 void introduce() { 6 // TODO Auto-generated method stub 7 System.out.println("我是猎人"); 8 } 9 @Override 10 public void attack() { 11 // TODO Auto-generated method stub 12 System.out.println("(猎人)我可以攻击"); 13 } 14 15 @Override 16 public void canDo() { 17 // TODO Auto-generated method stub 18 System.out.println("(猎人)我可以打猎"); 19 } 20 }
7、农民
1 /**角色--农民*/ 2 public class Farmer extends Role implements DoThings,Attack,Treat{ 3 4 @Override 5 void introduce() { 6 // TODO Auto-generated method stub 7 System.out.println("我是农民"); 8 } 9 10 @Override 11 public void treat() { 12 // TODO Auto-generated method stub 13 System.out.println("(农民)我可以治疗"); 14 } 15 16 @Override 17 public void attack() { 18 // TODO Auto-generated method stub 19 System.out.println("(农民)我可以攻击"); 20 } 21 22 @Override 23 public void canDo() { 24 // TODO Auto-generated method stub 25 System.out.println("(农民)我可以采矿"); 26 } 27 28 }
8、战士
1 /**角色--士兵*/ 2 public class Soilder extends Role { 3 @Override 4 void introduce() { 5 // TODO Auto-generated method stub 6 System.out.println("我是战士"); 7 } 8 public void defence (Attack role){ 9 System.out.println("我可以防御"); 10 } 11 }
9、医生
1 /**角色--医生*/ 2 public class Doctor extends Role implements Treat{ 3 4 @Override 5 public void treat() { 6 // TODO Auto-generated method stub 7 System.out.println("(医生)我可以治疗"); 8 } 9 10 @Override 11 void introduce() { 12 // TODO Auto-generated method stub 13 System.out.println("我是医生"); 14 } 15 16 }
10、玩家
1 /**玩家*/ 2 public class Player { 3 public void player (Role role){ 4 System.out.println("我可以控制"); 5 } 6 }
转载于:https://www.cnblogs.com/zzyytt/p/5890543.html
2016.9.14小程序---多态练习2相关推荐
- uoj#267. 【清华集训2016】魔法小程序(乱搞)
传送门 感觉很像FFT的过程的说-- 先来考虑\(b\)如何转化成\(c\),那么只要通过它的逆过程就可以了 首先,我们称"魔法"为比较两个数的字典序,记\(x=a_0\),那么把 ...
- 微信小程序开发风口,这些小程序营销玩法你知道吗?
从2016年,小程序正式启动内侧到现在,小程序经历了跌宕起伏的几年,我们也看到了其发生的巨大变化.从最开始的娱乐小游戏,到现在的营销工具,其价值逐渐上升.在小程序风口的带动下,如今应用小程序的行业越发 ...
- 【微信小程序】微信小程序入门与实战-个人笔记
微信小程序入门与实战 文章目录 微信小程序入门与实战 1 初识微信小程序 1-1 2020版重录说明 1-2 下载小程序开发工具 1-3 新建小程序项目 1-4 小程序appid的注册 1-5 新版小 ...
- 微信小程序学习笔记01:微信小程序概述
文章目录 零.学习目标 一.小程序的历史 二.如何访问小程序 1.线下扫码 2.微信搜索 3.公众号关联 4.好友推荐 5.历史记录 6.桌面访问 7.附近的小程序 三.小程序与HTML5和APP比较 ...
- 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新
文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶 ...
- 2020前端最新面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)(3年前端菜鸟级开发师含泪总结)
2020前端最新面试题总结(js.html.小程序.React.ES6.Vue.算法.全栈热门视频资源) 文档描述 (今年确实挺难 3年前端菜鸟级开发师含泪总结 希望能帮助大家) 本文是关注微信小程序 ...
- 前端面试题总结(js、html、小程序、React、ES6、Vue、全栈)
前端面试题总结(js.html.小程序.React.ES6.Vue.全栈) 文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue re ...
- 前端面试题精编2020(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新
文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶 ...
- 前端面试题总结(js、html、小程序、React、算法、vue 、全栈热门视频资源)
写在前面 详细文档和答案请去看云平台查看购买一次购买终身免费长期更新(欢迎大家多题宝贵意见) 文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点 ...
最新文章
- 数学好=编程能力强?MIT新发现:二者激活大脑区域并不同
- 程序员修炼之道:从小工到专家九月第一篇
- Qt Model/View 学习笔记 (四)
- Python面试基础题-2018-12-26
- tensorflow padd
- CVS有关no such repository问题
- SpringBoot中@EventListener注解的使用
- CentOS7.4 搭建ngrok 内网穿透
- tomcat防cc_浅析Tomcat防止资料被锁的方式
- 46 SD配置-销售凭证设置-分配状态参数文件到项目类型
- 单片机p2.0引脚c语言,单片机p2.0?
- Linux 用户及权限详解
- 记redis的一个测试
- ubuntu安装homeassistant
- 【转载:80个Python经典资料(教程+源码+工具)汇总】
- SpringBoot启动报错:Parameter 0 of method hmset in com.qcby.rbac.util.RedisUtils required a bean of type
- 转区系统开放艾欧尼亚转入服务器,【英雄联盟】转区系统开放艾欧尼亚转入服务...
- 人工智能第一章——简介(附上有用资料和链接)
- 初次使用tshark小结
- 启动 jack server 出现 Could not find or load main class com.android.jack.launcher.ServerLauncher的问题