需求说明:
- 模拟实现愤怒的小鸟,定义鸟叫的接口,定义"嗷嗷叫",“喳喳叫"两种实现类
- 定义抽象类,“鸟”,将接口定义为鸟的属性,并定义两个子类,“炸弹鸟”,“分裂鸟”
- 定义测试类,测试"炸弹鸟”,和"分裂鸟" 叫 和 飞 的行为
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("喳喳叫");
}
}
4.定义一个抽象类 鸟
package PolymorphismAngryBird;
public abstract class Bird implements BirdScream{
// 无参构造函数
public Bird() {}
// 鸟飞行为
public void fly(){
System.out.println("飞...");
}
}
5.定义鸟的子类,分裂鸟
package PolymorphismAngryBird;
public class SplitBird extends Bird{
@Override
public void birdScreaming() {
System.out.println("喳喳叫");
}
}
6.定义鸟的子类,炸弹鸟
package PolymorphismAngryBird;
public class BoomBird extends Bird {
public BoomBird() {
}
@Override
public void fly() {
System.out.println("炸弹鸟在飞 ...");
}
@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.输出的结果
炸弹鸟在飞...
炸弹鸟在嗷嗷叫...
飞...
喳喳叫
Process finished with exit code 0
标签:定义,package,void,多态,小鸟,birdScreaming,PolymorphismAngryBird,抽象类,public From: https://www.cnblogs.com/curry3000/p/17150696.html