Java基础之面向对象详细讲解——实操(2)

再次进行实操了

题目是这样的:

英雄联盟一把游戏开始了,上单:诺手,打野:蜘蛛,中单:亚索,下路:蛇女,辅助:锤石

在这样一局对局中,希望有英雄这个类,来代表所有英雄共同拥有的操作(选择英雄,购买装备,英雄出发),同时创建5个不同位置(上野中下辅)的类,他们有自己不同的操作(释放不同的技能,购买不同的装备),然后创建person类来完成英雄的共同拥有的操作,在game类中来完成总的拼接(英雄基础操作,不同操作的展示)

要求:person中只有接受hero的接口,因为在玩家眼里,只有英雄,而对于不同的英雄才有不同的操作,所以各个英雄不同的操作也应该写到各个英雄单独的类中,主类(game)中要求代码不重复,各个类中要求简洁

提示:不论上野中下辅都是英雄,所以他们有一个共同的父类那就是Hero

我这里给出的例子是:

person.java

package game;

public class person {
    public void play(Hero hero,int a){
        hero.choose();
        hero.setBlood(a);
        System.out.println("血量"+hero.getBlood());
        hero.buy();
        hero.go();
        hero.fight();
    }
}

Hero.java

package game;

//英雄共有的属性,动作
public class Hero {
    private int blood;
    private String skill;

    public int getBlood() {
        return blood;
    }

    public void setBlood(int blood) {
        this.blood = blood;
    }

    public void choose(){
        System.out.println("选择英雄");
    }
    public void buy(){
        System.out.println("英雄购买装备");
    }
    public void go(){
        System.out.println("英雄出发了");
    }
    public void fight(){
        System.out.println("英雄开始战斗");
    }

}


不同的英雄有不同的操作:

Top.java

package game;

public class Top extends Hero {

    public void choose(){
        System.out.println("选择诺手");
    }
    public void buy(){
        System.out.println("诺手购买了长剑三红");
    }
    public void fight(){
        System.out.println("诺手闪现A接W接无情铁手接A接外圈Q接A,诺克萨斯断头台,西内!!!");
    }
}

Jungle.java

package game;

public class Jungle extends Hero {
    public void choose(){
        System.out.println("选择蜘蛛");
    }
    public void buy(){
        System.out.println("蜘蛛购买了护符");
    }
    public void fight(){
        System.out.println("蜘蛛R变身");
    }
}

Mid.java

package game;

public class Mid extends Hero{
    public void choose(){
        System.out.println("选择托儿索");
    }
    public void buy(){
        System.out.println("托儿索购买了多兰剑");
    }
    public void fight(){
        System.out.println("托儿索q吹风");
    }
}

Bot.java

package game;

public class Bot extends Hero {
    public void choose(){
        System.out.println("选择蛇女");
    }
    public void buy(){
        System.out.println("蛇女购买了萃取");
    }
    public void fight(){
        System.out.println("蛇女q放毒");
    }
}

SUP.java

package game;

public class SUP extends Hero {
    public void choose(){
        System.out.println("选择锤石");
    }
    public void buy(){
        System.out.println("锤石购买圣物之盾");
    }
    public void fight(){
        System.out.println("锤石q勾人");
    }
}

gama.java

package game;
public class game {
    public static void main(String[] args) {

        Hero top = new Top();
        Hero jug = new Jungle();
        Hero mid = new Mid();
        Hero bot = new Bot();
        Hero sup = new SUP();

        person person = new person();

        person.play(top,660);
        person.play(jug,580);
        person.play(mid,560);
        person.play(bot,552);
        person.play(sup,600);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值