写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)

Posted 红树叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)相关的知识,希望对你有一定的参考价值。

 
(一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。
再写两个子类:
红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color)。红猪也有一个打人的方法(fight),要求在此方法中输出“XX猪是XX颜色的,打掉了人XX点血”。
蛇类:类中有属性姓名(name),有攻击力属性(attack),有几条脚属性(foot)。蛇也有一个打人的方法
(fight),要求在此方法中输出“XX蛇用XX条脚跑到人面前去打人,打掉了人XX点血”。
写一个测试类,生成一只红猪,调用此红猪的打人方法,观察结果。再生成一条蛇,调用此蛇的打人方法。
(注意:代码的重用,及方法重写带来的多态行为)
package monster;
public class Monster {
 String name;
 int attack;
 public void fight(){
  
 }
}
package monster;
public class Redpig extends Monster{
 String a1=super.name="s";
 int a2=super.attack=2;
 String color="红色";
 @Override
 public void fight() {
  // TODO Auto-generated method stub
            System.out.println(a1+"猪是 "+color+"颜色的"+",打掉了人"+a2+"点血");
 }
}
package monster;
public class se extends Monster{
 int foot=10;
 String a1=super.name="se";
 int a2=super.attack=112;
 String color="红色";
 public void fight() {
  // TODO Auto-generated method stub
            System.out.println(a1+"蛇用 "+foot+"条脚到人面前去打人,"+",打掉了人"+a2+"点血");
 }
}
package monster;
public class test {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Redpig pig=new Redpig();
  pig.fight();
  se ss=new se();
  ss.fight();
 }
}
(二)、写一个枪类(Gun),类中有属性:品种(进口枪还是国产枪)type,重量weight。还有一个开枪的方法(shoot),输出“开枪了”。两个子类是:
手枪类(HandGun):类中有属性品种,重量。还有一个开枪的方法,输出“XX品种的手枪,重XX公斤,一颗子弹打出去了”。
机枪类(machineGun):类中有属性品种,重量。还有一个开枪的方法,输出“XX品种的机枪,重XX公斤,一连串的子弹打出去了”。
测试类中定义一个枪的变量,用此变量记录一个手枪的对象,调用这把枪的开枪方法,注意观察输出的结果,是调用的枪的开枪方法,还是调用的手枪的开枪方法。再生成一把机枪的对象放入到这个枪的变量中去,又调用这把枪的开枪方法,观察结果。
(注意:把儿子当老子看后,调用的方法还是儿子的)
package weaoan;
public class Bullen extends Weapen{
 public Bullen() {
  super();
  super.Power=100.2;
  super.speed=2222;
  this.type="机枪子弹";
  // TODO Auto-generated constructor stub
 }
 private String type;
 public String getType() {
  return type;
 }
 public void setType(String type) {
  this.type = type;
 }
 public void Attack(){
  System.out.println("我是"+getType()+", 速度"+this.speed+",攻击力"+super.Power);
  }
}
package weaoan;
public class Tank extends Weapen {
 private String dir;
 public Tank() {
  super();
  super.Power=100.32;
  super.speed=10000;
  this.dir="上";
  // TODO Auto-generated constructor stub
 }
 
 public String getDir() {
  return dir;
 }
 public void setDir(String dir) {
  this.dir = dir;
 }
 public void  Attack(){
  System.out.println("我是坦克,向"+getDir()+"方向运动,速度"+this.speed+",攻击力"+super.Power);
 }
}
package weaoan;
public class Weapen {
 
 double Power;
 double speed;
 public Weapen() {
 
  // TODO Auto-generated constructor stub
 }
}
package weaoan;
public class Text {
public static void main(String[] args) {
 Tank tk=new Tank();
 tk.Attack();
 Bullen Bl=new Bullen();
    Bl.Attack();
}
}                                                                                                                                                    



 

以上是关于写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)的主要内容,如果未能解决你的问题,请参考以下文章

23.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。 具体要求如下: Person类中的属性有:姓名name(String类型)(代码

java一个类如何获得另一个类中的某个值

关于实现Runnable接口的类中有公共属性问题

当我的类中有属性具有默认构造函数来提供值自动映射器时,如何映射?

python的类

实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。