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 }