(一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。
再写两个子类:
红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color)。红猪也有一个打人的方法(fight),要求在此方法中输出“XX猪是XX颜色的,打掉了人XX点血”。
蛇类:类中有属性姓名(name),有攻击力属性(attack),有几条脚属性(foot)。蛇也有一个打人的方法
(fight),要求在此方法中输出“XX蛇用XX条脚跑到人面前去打人,打掉了人XX点血”。
写一个测试类,生成一只红猪,调用此红猪的打人方法,观察结果。再生成一条蛇,调用此蛇的打人方法。
(注意:代码的重用,及方法重写带来的多态行为)
package com.lanxi.demo1;
public class Monster {
String name;
int attack;
public Monster(String name,int attack){
this.name=name;
this.attack=attack;
}
public void fight(){
}
}
package com.lanxi.demo1;
public class RedPig extends Monster{
char color;
public RedPig(char color){
super("侠侠",56);
this.color=color;
}
@Override
public void fight() {
System.out.println(name+"猪是"+color+"颜色的,打掉了人"+attack+"点血");
}
}
package com.lanxi.demo1;
public class Snack extends Monster{
int food;
public Snack(int food){
super("眼镜",85);
this.food=food;
}
@Override
public void fight() {
System.out.println(name+"蛇用"+food+"条脚跑到人面前去打人,打掉了人"+attack+"点血");
}
}
package com.lanxi.demo1;
public class Test {
public static void main(String[] args) {
Monster mon=new RedPig('红');
mon.fight();
Monster mon1=new Snack(5);
mon1.fight();
}
}