- 使用抽象类实现这个功能,定义一个Bird抽象类,包含4个方法,其中攻击设置为attack抽象方法
- 定义5种小鸟,继承Bird抽象类,重写attack,show抽象方法
- 定义一个Host类,使用父类作为方法的返回值。
- 话不多说,上代码。
类名 |
方法 |
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
加速冲撞
喳喳叫