愤怒的小鸟--------抽象类

  1. 使用抽象类实现这个功能,定义一个Bird抽象类,包含4个方法,其中攻击设置为attack抽象方法
  2. 定义5种小鸟,继承Bird抽象类,重写attack,show抽象方法
  3. 定义一个Host类,使用父类作为方法的返回值。
  4. 话不多说,上代码。
类名 方法
Bird 抽象类 fly() shot() attack() 抽象方法 show()
SplitBird 分裂鸟 NO YES
RockerBird 火箭鸟 NO YES
Redbird 红色鸟 NO YES YES
BombBird 爆炸鸟 NO YES YES
FatBird 胖子鸟 NO YES YES
/**
 * version:1.0
 * 抽象类 小鸟
 * 飞行 叫 攻击
 */
public abstract class Bird {
    public  void fly(){
        System.out.println("弹射飞");
    };
    public  void shot(){
        System.out.println("叫");
    };
    public abstract void attack();
    public abstract void show();
}
/**
 * 分裂鸟
 * 攻击
 */
public class SplitBird extends Bird{

    @Override
    public void attack() {
        System.out.println("分裂攻击");
    }

    @Override
    public void show() {
        this.attack();
    }
}
/**
 * 火箭鸟
 */
public class RockerBird extends Bird{
    @Override
    public void attack() {
        System.out.println("加速冲撞");
    }
    @Override
    public void shot(){
        System.out.println("喳喳叫");
    }

    @Override
    public void show() {
        this.attack();
        this.shot();
    }
}
/**
 * 红色鸟
 */
public class Redbird extends Bird {
    @Override
    public void attack() {
        System.out.println("普通攻击");
    }

    @Override
    public void show() {
        this.attack();
    }
}

/**
 * 炸弹鸟
 */
public class BombBird extends Bird{
    @Override
    public void attack() {
        System.out.println("爆炸攻击");
    }
    public void shot(){
        System.out.println("喳喳叫");
    }

    @Override
    public void show() {
        this.attack();
        this.shot();
    }
}
public class FatBird extends Bird {
    @Override
    public void attack() {
        System.out.println("不叫");
    }

    @Override
    public void show() {
        this.attack();
    }
}
/**
 * 主人类
 * 选择小鸟
 */
public class Host {
    /**
     *
     * @param bird
     *
        public void select(Bird bird){
        bird.attack();
        }
     */
    public Bird select(int type){
        Bird bird;
        if(type==1){
            bird=new SplitBird();
        } else if (type == 2) {
            bird=new RockerBird();
        } else if (type == 3) {
            bird=new Redbird();
        }else if(type==4){
            bird=new BombBird();
        }else {
            bird=new FatBird();
        }
        return bird;
    }
}

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        /**
         *
         Host host=new Host();
         Bird bird;
         bird=new SplitBird();
         host.select(bird);
         */
       Scanner sc=new Scanner(System.in);
       Host host=new Host();
       Bird bird;
       System.out.println("*************欢迎来到愤怒的小鸟**************");
       System.out.println("1、分裂鸟 2、火箭鸟 3、红色鸟 4、爆炸鸟 5、胖子鸟");
        System.out.println("请选择你的角色:");
       int num=sc.nextInt();
       bird=host.select(num);
       bird.show();

    }
}
*************欢迎来到愤怒的小鸟**************
1、分裂鸟 2、火箭鸟 3、红色鸟 4、爆炸鸟 5、胖子鸟
请选择你的角色:
2
加速冲撞
喳喳叫

猜你喜欢

转载自blog.csdn.net/qq_35327989/article/details/89339673