用java编写以下程序
1.定义Hero类及其属性姓名、攻击力、防御力、生命值。2.定义技能接口Skill,该接口中的四个方法分别为“被动技能”、“1技能”、“2技能”、“3技能”。3.声明法师...
1.定义Hero类及其属性姓名、攻击力、防御力、生命值。
2.定义技能接口Skill,该接口中的四个方法分别为“被动技能”、“1技能”、“2技能”、“3技能”。
3.声明法师类Master和战士类Warrior,这两个类都继承Hero类并实现Skill接口。
4.声明一个用来测试英雄施放技能的类叫做TestHero,该类中有一个方法test,可以传入不同的英雄并调用英雄的技能,在该方法中还需要对传入的英雄进行测试,如果该英雄的攻击力为0的话,那么抛出一个自定义的异常,并显示“攻击力不能不0”。
要求:
按要求声明一个带有main方法的类来测试以上内容。 展开
2.定义技能接口Skill,该接口中的四个方法分别为“被动技能”、“1技能”、“2技能”、“3技能”。
3.声明法师类Master和战士类Warrior,这两个类都继承Hero类并实现Skill接口。
4.声明一个用来测试英雄施放技能的类叫做TestHero,该类中有一个方法test,可以传入不同的英雄并调用英雄的技能,在该方法中还需要对传入的英雄进行测试,如果该英雄的攻击力为0的话,那么抛出一个自定义的异常,并显示“攻击力不能不0”。
要求:
按要求声明一个带有main方法的类来测试以上内容。 展开
1个回答
2017-08-02
展开全部
package test;
public class Hero {
private String name;
private int attack;
private int defense;
private int hp;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAttack() {
return attack;
}
public void setAttack(int attack) {
this.attack = attack;
}
public int getDefense() {
return defense;
}
public void setDefense(int defense) {
this.defense = defense;
}
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
}
/**********************************************************************/
package test;
public interface Skill {
public void passiveSkill(Hero h);
public void skill1(Hero h);
public void skill2(Hero h);
public void skill3(Hero h);
}
/**********************************************************************/
package test;
public class Master implements Skill {
@Override
public void passiveSkill(Hero h) {
System.out.println("passiveSkill----------");
}
@Override
public void skill1(Hero h) {
System.out.println("skill1----------");
}
@Override
public void skill2(Hero h) {
System.out.println("skill2----------");
}
@Override
public void skill3(Hero h) {
System.out.println("skill3----------");
}
}
/**********************************************************************/
package test;
public class MyException extends Exception {
private static final long serialVersionUID = 1L;
public MyException(){
super();
}
public MyException(String msg){
super(msg);
}
}
/**********************************************************************/
package test;
public class TestHero {
public static void test(Hero h) throws MyException{
if(null==h){
return;
}
if(h.getAttack()<=0){
throw new MyException("攻击力不能为0");
}
Master mt = new Master();
mt.passiveSkill(h);
mt.skill1(h);
mt.skill2(h);
mt.skill3(h);
}
public static void main(String[] args) {
Hero h = new Hero();
h.setName("he");
try {
test(h);
} catch (MyException e) {
e.printStackTrace();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询