(一)、寫一個怪物的類,類中有屬性姓名(name),攻擊力(attack),有打人的方法(fight)。
再寫兩個子類:
紅豬的類:類中有屬性姓名(name),攻擊力(attack),顏色(color)。紅豬也有一個打人的方法(fight),要求在此方法中輸出「XX豬是XX顏色的,打掉了人XX點血」。
蛇類:類中有屬性姓名(name),有攻擊力屬性(attack),有幾條腳屬性(foot)。蛇也有一個打人的方法
(fight),要求在此方法中輸出「XX蛇用XX條腳跑到人面前去打人,打掉了人XX點血」。
寫一個測試類,生成一隻紅豬,調用此紅豬的打人方法,觀察結果。再生成一條蛇,調用此蛇的打人方法。
(注意:代碼的重用,及方法重寫帶來的多態行爲)
package monster;
public class Monster {
String name;
int attack;
public void fight(){
}
}
package monster;
public class Redpig extends Monster{
String a1=super.name="s";
int a2=super.attack=2;
String color="紅色";
@Override
public void fight() {
// TODO Auto-generated method stub
System.out.println(a1+"豬是 "+color+"顏色的"+",打掉了人"+a2+"點血");
}
}
package monster;
public class se extends Monster{
int foot=10;
String a1=super.name="se";
int a2=super.attack=112;
String color="紅色";
public void fight() {
// TODO Auto-generated method stub
System.out.println(a1+"蛇用 "+foot+"條腳到人面前去打人,"+",打掉了人"+a2+"點血");
}
}
package monster;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Redpig pig=new Redpig();
pig.fight();
se ss=new se();
ss.fight();
}
}
(二)、寫一個槍類(Gun),類中有屬性:品種(進口槍仍是國產槍)type,重量weight。還有一個開槍的方法(shoot),輸出「開槍了」。兩個子類是:
手槍類(HandGun):類中有屬性品種,重量。還有一個開槍的方法,輸出「XX品種的手槍,重XX公斤,一顆子彈打出去了」。
機槍類(machineGun):類中有屬性品種,重量。還有一個開槍的方法,輸出「XX品種的機槍,重XX公斤,一連串的子彈打出去了」。
測試類中定義一個槍的變量,用此變量記錄一個手槍的對象,調用這把槍的開槍方法,注意觀察輸出的結果,是調用的槍的開槍方法,仍是調用的手槍的開槍方法。再生成一把機槍的對象放入到這個槍的變量中去,又調用這把槍的開槍方法,觀察結果。
(注意:把兒子當老子看後,調用的方法仍是兒子的)
package weaoan;
public class Bullen extends Weapen{
public Bullen() {
super();
super.Power=100.2;
super.speed=2222;
this.type="機槍子彈";
// TODO Auto-generated constructor stub
}
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public void Attack(){
System.out.println("我是"+getType()+", 速度"+this.speed+",攻擊力"+super.Power);
}
}
package weaoan;
public class Tank extends Weapen {
private String dir;
public Tank() {
super();
super.Power=100.32;
super.speed=10000;
this.dir="上";
// TODO Auto-generated constructor stub
}
public String getDir() {
return dir;
}
public void setDir(String dir) {
this.dir = dir;
}
public void Attack(){
System.out.println("我是坦克,向"+getDir()+"方向運動,速度"+this.speed+",攻擊力"+super.Power);
}
}
package weaoan;
public class Weapen {
double Power;
double speed;
public Weapen() {
// TODO Auto-generated constructor stub
}
}
package weaoan;
public class Text {
public static void main(String[] args) {
Tank tk=new Tank();
tk.Attack();
Bullen Bl=new Bullen();
Bl.Attack();
}
}