2.某公司要开发新游戏,请用面向对象的思想,设计游戏中的蛇怪和蜈蚣精设定⦁蛇怪类:属性包括:怪物名字,生命值,攻击力方法包括:攻击,移动(曲线移动),补血(当生命值<10时,可以补加20生命值

本文通过定义怪物基类,派生出蛇精类与蜈蚣精类,展示了如何利用面向对象编程中的继承特性。具体实现了怪物的生命值、攻击力等属性及攻击、移动等行为,并通过测试类验证了各功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

蜈蚣精类:

属性包括:怪物名字,生命值,攻击力

方法包括:攻击,移动(飞行移动)

要求

⦁分析蛇怪和蜈蚣精的公共成员,提取出父类—怪物类

⦁利用继承机制,实现蛇怪类和蜈蚣精类

⦁攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击力

⦁编写测试类,分别测试蛇怪和蜈蚣精的对象及相关方法

⦁定义名为mon的包存怪物类,蛇怪类,蜈蚣精类和测试类

运行效果:

 首先根据题目写出父类。有名字,血量,攻击力等私有属性,攻击和移动的方法,还有一个显示状态的输出方法。一个有参构造,在子类构造方法时可以通过super关键字使用父类的这个方法。

父类:

class Monster{


    private String name;
    private int blood;
    private int force;
    public Monster(String name2, int blood2, int force2) {
           this.name=name2;
           this.blood=blood2;
           this.force=force2;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getBlood() {
        return blood;
    }
    public void setBlood(int blood) {
        this.blood = blood;
    }
    public int getForce() {
        return force;
    }
    public void setForce(int force) {
        this.force = force;
    }
    void show() {
        System.out.println("当前生命值是:"+getBlood());
        System.out.println("攻击力是:"+getForce());
    }
    void attack(){
        System.out.println("怪物发动攻击");
    }
    void Move(){
        System.out.println("直线移动");
    }
}

 蛇精类:

class snakeMonster extends Monster{
    public snakeMonster(String name,int blood,int force){ 
        super(name,blood,force);
    }
    void Move(){
        System.out.println("我是蛇怪,我走S型路线");
        }
    void recover() {
        int remainblood=getBlood();
        remainblood=remainblood<10?remainblood+20:remainblood;
        System.out.println("实施大蛇补血术。。。。。,当前生命值是:"+remainblood);
        }
    void attack(){
        System.out.println(getName()+"展开攻击");
    }
}

蜈蚣精类:

 

class centipedeMonster extends Monster{
    public centipedeMonster(String name,int blood,int force){
        super(name,blood,force);
    }
      void Move() {
          System.out.println("我是蜈蚣精,御风飞行");
      }
      void attack() {
          System.out.println(getName()+"展开攻击");
      }

}

测试类:

 

public class Test2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        snakeMonster snake=new snakeMonster("蛇精甲",5,20);
        snake.attack();
        snake.show();
        snake.recover();
        snake.Move();
        System.out.println("--------------------------------");
        centipedeMonster centipede=new centipedeMonster("蜈蚣乙",60,15);
         centipede.attack();
         centipede.show();
         centipede.Move();
    }

}

完整代码:

package mon;
class Monster{
    private String name;
    private int blood;
    private int force;
    public Monster(String name2, int blood2, int force2) {
           this.name=name2;
           this.blood=blood2;
           this.force=force2;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getBlood() {
        return blood;
    }
    public void setBlood(int blood) {
        this.blood = blood;
    }
    public int getForce() {
        return force;
    }
    public void setForce(int force) {
        this.force = force;
    }
    void show() {
        System.out.println("当前生命值是:"+getBlood());
        System.out.println("攻击力是:"+getForce());
    }
    void attack(){
        System.out.println("怪物发动攻击");
    }
    void Move(){
        System.out.println("直线移动");
    }
}
class snakeMonster extends Monster{
    public snakeMonster(String name,int blood,int force){ 
        super(name,blood,force);
    }
    void Move(){
        System.out.println("我是蛇怪,我走S型路线");
        }
    void recover() {
        int remainblood=getBlood();
        remainblood=remainblood<10?remainblood+20:remainblood;
        System.out.println("实施大蛇补血术。。。。。,当前生命值是:"+remainblood);
        }
    void attack(){
        System.out.println(getName()+"展开攻击");
    }
}
class centipedeMonster extends Monster{
    public centipedeMonster(String name,int blood,int force){
        super(name,blood,force);
    }
      void Move() {
          System.out.println("我是蜈蚣精,御风飞行");
      }
      void attack() {
          System.out.println(getName()+"展开攻击");
      }

}
public class Test2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        snakeMonster snake=new snakeMonster("蛇精甲",5,20);
        snake.attack();
        snake.show();
        snake.recover();
        snake.Move();
        System.out.println("--------------------------------");
        centipedeMonster centipede=new centipedeMonster("蜈蚣乙",60,15);
         centipede.attack();
         centipede.show();
         centipede.Move();
    }

}

运行效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香蕉不拉了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值