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 }

 

posted @ 2016-09-20 21:34  爱吃胡豆  阅读(446)  评论(0编辑  收藏  举报