题目:定义汽车人Autobots(擎天主代表,可以变成大卡车,在构造函数中完成初始化)
定义霸天虎Decepticons(威震天为代表,可以变成枪,在构造函数中完成初始化)
特征:故乡,名字,对应的车型,汽车人形态(0--汽车 1--人型),霸天虎形态(0-机器,1-人形),汽车人和霸天虎的最大能量
行为:射击子弹(每次设置最大杀伤力10),防御(受到攻击量),变形deform
要用继承来写,我需要源代码。 我只能写出一部分,所以想借源代码参考下。
定义霸天虎Decepticons(威震天为代表,可以变成枪,在构造函数中完成初始化)
特征:故乡,名字,对应的车型,汽车人形态(0--汽车 1--人型),霸天虎形态(0-机器,1-人形),汽车人和霸天虎的最大能量
行为:射击子弹(每次设置最大杀伤力10),防御(受到攻击量),变形deform
要用继承来写,我需要源代码。 我只能写出一部分,所以想借源代码参考下。
int shoot();
void defend(int damage);
void deform();
}enum TransformerShape {
HUMAN("human"),
CAR("car"),
WEAPON("weapon");
TransformerShape(String name) {
}
}abstract class Transformer implements TransformerAction {
static final int MAX_DAMAGE = 10;
protected TransformerShape shape;
protected String name;
protected String hometown;
protected int power;
Transformer(TransformerShape shape, String name, String hometown, int power) {
this.shape = shape;
...
}
public TransformerShape getTransformerShape() {
return shape;
}
public void setTransformerShape(TransformerShape shape) {
this.shape = shape;
}
public int getTransformerState() {
return (HUMAN == this.shape) ? 1 : 0;
}
...
public int shoot() {
...
return (int)Math.radom()*MAX_DAMAGE;
}
public void defend(int damage) {
...
power -= (int)Math.radom()*damage;
}
}abstract class Car {}abstract class Weapon {}abstract class Autobots extends Transformer {
protected Car car;
Autobots(String name, String hometown, Car car, int power) {
super(CAR, name, hometown, power);
this.car = car;
...
}
public void deform() {
if (getTransformerShape() == HUMAN) {
setTransformerShape(CAR);
} else {
setTransformerShape(HUMAN);
}
}
}abstract class Decepticons extends Transformer {
protected Weapon weapon;
Autobots(String name, String hometown, Weapon weapon, int power) {
super(WEAPON, name, hometown, power);
this.weapon = weapon;
...
}
public void deform() {
if (getTransformerShape() == HUMAN) {
setTransformerShape(WEAPON);
} else {
setTransformerShape(HUMAN);
}
}
}如果把Car和Weapon做个抽象类估计会要一些