package ex3;
class Character {
protected String name;
protected int health;
private static int num = 0;
public Character(String name, int health) {
this.name = name;
this.health = health;
num++;
System.out.println("Character构造器第" + num + "次被调用");
}
public String getType() {
return "普通角色";
}
@Override
public String toString() {
return "我叫" + name + ",我的生命值是" + health;
}
}
package ex3;
public class Warrior extends Character {
public static int num = 0;
public Warrior(String name, int health) {
super(name, health);
num++;
System.out.println("Warrior构造器第" + num + "次被调用");
}
public String getType() {
return "战士";
}
}
package ex3;
import static java.lang.Character.getName;
class Mage extends Character {
private static int num = 0;
public Mage(String name, int health) {
super(name, health);
num++;
System.out.println("Mage构造器第" + num + "次被调用");
}
public String getType(){
return "法师";
}
}
package ex3;
class IceMage extends Mage {
public static int num = 0;
public IceMage(String name, int health) {
super(name, health);
num++;
System.out.println("IceMage构造器第" + num + "次被调用");
}
}
package ex3;
class FireMage extends Mage {
public static int num = 0;
public FireMage(String name, int health) {
super(name, health);
num++;
System.out.println("FireMage构造器第" + num + "次被调用");
}
}
package ex3;
public class Main {
private static void checkCharacter(Character c) {
System.out.println("这是一个"+c.getType());
}
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);
}
}
}