1. 程式人生 > 其它 >(1)定義一個抽象類Weapon,該抽象類有兩個抽象方法attack(),move() 這兩個方法分別表示武器的攻擊方式和移動方式。 (2)定義3個類:Tank,Fl

(1)定義一個抽象類Weapon,該抽象類有兩個抽象方法attack(),move() 這兩個方法分別表示武器的攻擊方式和移動方式。 (2)定義3個類:Tank,Fl

技術標籤:抽象類多型

程式碼

/*第一題:
        (1)定義一個抽象類Weapon,該抽象類有兩個抽象方法attack(),move()
        這兩個方法分別表示武器的攻擊方式和移動方式。

        (2)定義3個類:Tank,Flighter,WarShip都繼承自Weapon,
        分別用不同的方式實現Weapon類中的抽象方法。

        編寫測試程式main方法,建立多個不同武器的例項。並分別呼叫attack()和move()方法。
        能用多型儘量使用多型。*/
public class Homework1 {
    public static void main(String[] args) {
        //建立物件
        Weapon tank = new Tank();
        Weapon fighter = new Fighter();
        Weapon warship = new Warship();

        //呼叫方法
        tank.attack();
        tank.move();
        System.out.println("---------------------");

        fighter.attack();
        fighter.move();
        System.out.println("---------------------");

        warship.attack();
        warship.move();
        System.out.println("-----------------------");
    }
}

abstract class Weapon{
    //武器攻擊
    public abstract void attack();
    //武器移動
    public abstract void move();
}

//坦克類
class Tank extends Weapon{

    @Override
    public void attack() {
        System.out.println("戰艦攻擊!");
    }

    @Override
    public void move() {
        System.out.println("戰艦移動!");
    }
}

//戰鬥機類
class Fighter extends Weapon{
    @Override
    public void attack() {
        System.out.println("戰鬥機攻擊!");
    }

    @Override
    public void move() {
        System.out.println("戰鬥機移動!");
    }
}

//戰艦類
class Warship extends Weapon{
    @Override
    public void attack() {
        System.out.println("戰艦攻擊!");
    }

    @Override
    public void move() {
        System.out.println("戰艦移動!");
    }
}