Java 多态练习题之愤怒的小鸟,会飞会叫

本文通过定义接口和抽象类的方式,模拟实现了愤怒的小鸟游戏中不同种类小鸟的行为特性,包括叫声和飞行方式。具体实现了鸟叫接口及两种叫声的实现类,并创建了抽象类“鸟”,派生出“炸弹鸟”和“分裂鸟”两个子类,最后通过测试类验证了这些行为。

需求说明:
模拟实现愤怒的小鸟,定义鸟叫的接口,定义"嗷嗷叫",“喳喳叫"两种实现类
定义抽象类,“鸟”,将接口定义为鸟的属性,并定义两个子类,“炸弹鸟”,“分裂鸟”
定义测试类,测试"炸弹鸟”,和"分裂鸟" 叫 和 飞 的行为
在这里插入图片描述
1.定义一个接口 鸟叫的接口

package PolymorphismAngryBird;

// 鸟叫的接口
public interface BirdScream {
    // 接口中的行为
    void birdScreaming();
}

2.定义嗷嗷叫的实现类

package PolymorphismAngryBird;

// 嗷嗷叫,实现了,鸟叫的接口
public class AoAo implements BirdScream{

    // 重写了方法
    @Override
    public void birdScreaming() {
        System.out.println("嗷嗷叫");
    }
}

3.定义喳喳叫的实现类

package PolymorphismAngryBird;

// 喳喳叫 实现了,鸟叫的方法
public class Zaza implements BirdScream{

    // 重写了,方法的行为
    @Override
    public void birdScreaming() {
        System.out.println("喳喳叫");
    }
}
  1. 定义一个抽象类 鸟
package PolymorphismAngryBird;

public abstract class Bird implements BirdScream{

    // 无参构造函数
    public Bird() {
    }

    // 鸟飞行为
    public void fly(){
        System.out.println("飞...");
    }
}

5.定义鸟的子类,炸弹鸟

package PolymorphismAngryBird;

public class BoomBird extends Bird {

    public BoomBird() {
    }

    @Override
    public void fly() {
        System.out.println("BoomBird is flying ...");
    }

    @Override
    public void birdScreaming() {
        System.out.println("BoomBird screaming Aoao ... fire in the hole...");
    }
}

6.定义鸟的子类,分裂鸟

package PolymorphismAngryBird;

public class SplitBird extends Bird{

    @Override
    public void birdScreaming() {
        System.out.println("喳喳叫");
    }
}

7.定义一个测试类

package PolymorphismAngryBird;

public class Test {
    public static void main(String[] args) {

        // 父类对象指向子类对象
        // 多态的写法,向上转型
        Bird boomBird = new BoomBird();
        // 调用子类的方法
        boomBird.fly();
        boomBird.birdScreaming();

        // 普通写法
        SplitBird splitBird = new SplitBird();
        splitBird.fly();
        splitBird.birdScreaming();

    }
}

8.输出的结果

BoomBird is flying ...
BoomBird screaming Aoao ... fire in the hole......
喳喳叫

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值