(一)、写一个怪物的类,类中有属性姓名(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(); } }