(一)、寫一個怪物的類,類中有屬性姓名(name),攻擊力(attack),有打人的方法(fight)。(方法的重寫)

 
(一)、寫一個怪物的類,類中有屬性姓名(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();
}
}                                                                                                                                                    



相關文章
相關標籤/搜索