第二次作业

先定义超类character

点击查看代码
package ex3;

class Character {
    protected String name;
    protected int health;

    public Character(String name, int health) {
        this.name = name;
        this.health = health;
    }

    public void displayInfo() {
        System.out.println("我叫" + name + ", 我的生命值是" + health);
    }
}

在定义几个子类Warrior,Mage,IceMage,FireMage,meiyig每一个子类都要继承自Character类
点击查看代码
class Warrior extends Character {
    public Warrior(String name, int health) {
        super(name, health);
    }
}
点击查看代码
class Mage extends Character {
    public Mage(String name, int health) {
        super(name, health);
    }
}
点击查看代码
class IceMage extends Mage {
    public IceMage(String name, int health) {
        super(name, health);
    }
}
点击查看代码
class FireMage extends Mage {
    public FireMage(String name, int health) {
        super(name, health);
    }
}
最后在Main主类中创建调用Character类型的数组来输出
点击查看代码
public class Main {
    private static void checkCharacter(Character c) {
        System.out.println(c.getClass().getSimpleName() + "构造器第" + (c.name.charAt(1) - 'a' + 1) + "次被调用");
        c.displayInfo();
    }

    public static void main(String[] args) {
        System.out.println("****************************");
        Character[] characters = new Character[5];
        characters[0] = new Character("aa", 100);
        characters[1] = new Warrior("bb", 100);
        characters[2] = new Mage("cc", 100);
        characters[3] = new IceMage("dd", 100);
        characters[4] = new FireMage("ee", 100);
        System.out.println("****************************");
        System.out.println(characters[3]);
        System.out.println("****************************");
        for (Character c : characters) {
            checkCharacter(c);
        }
    }
}
最后的输出结果就为
点击查看代码
*****************************
Character构造器第1次被调用
Character构造器第2次被调用
Warrior构造器第1次被调用
Character构造器第3次被调用
Mage构造器第1次被调用
Character构造器第4次被调用
Mage构造器第2次被调用
IceMage构造器第1次被调用
Character构造器第5次被调用
Mage构造器第3次被调用
FireMage构造器第1次被调用
*****************************
我叫dd,我的生命值是100
*****************************
这是一个普通角色
这是一个战士
这是一个法师
这是一个法师
这是一个法师
![](https://img2024.cnblogs.com/blog/3552892/202412/3552892-20241203165513594-962121792.png)
posted @ 2024-12-03 16:55  叱咤星海流萤猫  阅读(20)  评论(0)    收藏  举报