在一个游戏中,有盗贼,猎人,医生,农民,士兵几类人,这些人都有名称、等级,还可以自己介绍自己;
其中,
盗贼可以偷盗。
猎人可以打猎。
农民可以采矿。
盗贼、猎人和农民可以攻击。
农民、医生可以治疗。
士兵可以抵抗盗贼、猎人和农民等的攻击。
还有一个玩家可以控制这些角色。
设计这个系统

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相关推荐

  1. uoj#267. 【清华集训2016】魔法小程序(乱搞)

    传送门 感觉很像FFT的过程的说-- 先来考虑\(b\)如何转化成\(c\),那么只要通过它的逆过程就可以了 首先,我们称"魔法"为比较两个数的字典序,记\(x=a_0\),那么把 ...

  2. 微信小程序开发风口,这些小程序营销玩法你知道吗?

    从2016年,小程序正式启动内侧到现在,小程序经历了跌宕起伏的几年,我们也看到了其发生的巨大变化.从最开始的娱乐小游戏,到现在的营销工具,其价值逐渐上升.在小程序风口的带动下,如今应用小程序的行业越发 ...

  3. 【微信小程序】微信小程序入门与实战-个人笔记

    微信小程序入门与实战 文章目录 微信小程序入门与实战 1 初识微信小程序 1-1 2020版重录说明 1-2 下载小程序开发工具 1-3 新建小程序项目 1-4 小程序appid的注册 1-5 新版小 ...

  4. 微信小程序学习笔记01:微信小程序概述

    文章目录 零.学习目标 一.小程序的历史 二.如何访问小程序 1.线下扫码 2.微信搜索 3.公众号关联 4.好友推荐 5.历史记录 6.桌面访问 7.附近的小程序 三.小程序与HTML5和APP比较 ...

  5. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新

    文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶 ...

  6. 2020前端最新面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)(3年前端菜鸟级开发师含泪总结)

    2020前端最新面试题总结(js.html.小程序.React.ES6.Vue.算法.全栈热门视频资源) 文档描述 (今年确实挺难 3年前端菜鸟级开发师含泪总结 希望能帮助大家) 本文是关注微信小程序 ...

  7. 前端面试题总结(js、html、小程序、React、ES6、Vue、全栈)

    前端面试题总结(js.html.小程序.React.ES6.Vue.全栈) 文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue re ...

  8. 前端面试题精编2020(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新

    文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶 ...

  9. 前端面试题总结(js、html、小程序、React、算法、vue 、全栈热门视频资源)

    写在前面 详细文档和答案请去看云平台查看购买一次购买终身免费长期更新(欢迎大家多题宝贵意见) 文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点 ...

最新文章

  1. 数学好=编程能力强?MIT新发现:二者激活大脑区域并不同
  2. 程序员修炼之道:从小工到专家九月第一篇
  3. Qt Model/View 学习笔记 (四)
  4. Python面试基础题-2018-12-26
  5. tensorflow padd
  6. CVS有关no such repository问题
  7. SpringBoot中@EventListener注解的使用
  8. CentOS7.4 搭建ngrok 内网穿透
  9. tomcat防cc_浅析Tomcat防止资料被锁的方式
  10. 46 SD配置-销售凭证设置-分配状态参数文件到项目类型
  11. 单片机p2.0引脚c语言,单片机p2.0?
  12. Linux 用户及权限详解
  13. 记redis的一个测试
  14. ubuntu安装homeassistant
  15. 【转载:80个Python经典资料(教程+源码+工具)汇总】
  16. SpringBoot启动报错:Parameter 0 of method hmset in com.qcby.rbac.util.RedisUtils required a bean of type
  17. 转区系统开放艾欧尼亚转入服务器,【英雄联盟】转区系统开放艾欧尼亚转入服务...
  18. 人工智能第一章——简介(附上有用资料和链接)
  19. 初次使用tshark小结
  20. 启动 jack server 出现 Could not find or load main class com.android.jack.launcher.ServerLauncher的问题

热门文章

  1. 一篇文章带你搞定数学建模中的 Logistic 模型(含代码)
  2. 网络与系统安全笔记------密码技术及应用
  3. 一千行MySQL学习笔记(MySQL常见SQL语句全详解)
  4. 【牛客网】BC64 K形图案
  5. ASO优化之如何降低应用的卸载率
  6. 比超越更难的是稳住,安踏何以超耐克?
  7. 典雅而悠扬毛戈平彰显东方的时尚神韵
  8. 微软发布IE9预览版
  9. transformer一统天下?depth-wise conv有话要说
  10. perl 数组引用_Perl中数组引用的魔力