愤怒的小鸟-----------接口

这篇博客探讨了如何使用抽象类和接口来实现愤怒的小鸟游戏中的功能。通过定义一个Bird抽象类和show方法,不同种类的小鸟通过继承并重写此方法展示各自特性。同时,引入了三个接口BirdShot、BirdFly和BirdAttack,让不同小鸟实现不同的行为能力。最后,通过Host类使用父类引用实现多态,展示了面向对象设计的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用抽象类实现这个功能,定义一个Bird抽象类,包含1个show抽象方法
  2. 定义5种小鸟,继承Bird抽象类,重写show抽象方法
  3. 定义三个接口,BirdShot,BirdFly,BirdAttack。
  4. 不同小鸟分别实现不同接口
  5. 定义一个Host类,使用父类作为方法的返回值。
类名 方法接口
Bird show抽象 no
SplitBird show BirdAttack
RcokerBird show BirdAttack
RedBird show BirdAttack,BirdShot
BombBird show BirdAttack,BirdShot
FatBird show BirdAttack,BirdShot
Bird类
public abstract class Bird {
    public abstract void show();
}
BirdShot,BirdFly,BirdAttack接口

public interface BirdAttack {
    void attack();
}

public interface BirdFly {
    void fly();
}
public interface BirdShot {
    void shot();
}
/**
 * 分裂鸟
 */
public class SplitBird extends Bird implements BirdAttack {
    @Override
    public void show() {
        this.attack();
    }
    @Override
    public void attack() {
        System.out.println("分裂攻击");
    }
}
/**
 * 火箭鸟
 */
public class RcokerBird extends Bird implements BirdAttack {
    @Override
    public void show() {
        this.attack();
    }

    @Override
    public void attack() {
        System.out.println("加速冲撞");
    }
}
//红色鸟
public class RedBird extends Bird implements BirdAttack,BirdShot {
    @Override
    public void show() {
        this.attack();
        this.shot();
    }

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

    @Override
    public void shot() {
        System.out.println("喳喳叫");
    }
}
//爆炸鸟
public class BombBird extends Bird implements BirdAttack,BirdShot {
    @Override
    public void show() {
        this.attack();
        this.shot();
    }

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

    @Override
    public void shot() {
        System.out.println("喳喳叫");
    }
}
//主人类
public class Host {
    public Bird select(int type){
        Bird bird;
        if(type==1){
            bird=new SplitBird();
        }else if(type==2){
            bird=new RcokerBird();
        }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) {
        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、胖子鸟
请选择你的角色:
5
扔弹攻击
不叫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值