• 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 }
  • 相关阅读:
    单例模式 & Init(allocWithZone:)
    Go 初体验
    Go 初体验
    beego 初体验
    beego 初体验
    beego 初体验
    beego 初体验
    beego 初体验
    beego 初体验
    beego 初体验
  • 原文地址:https://www.cnblogs.com/zzyytt/p/5890543.html
Copyright © 2020-2023  润新知