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

【网易自营|30天无忧退货】仅售同款价1/4!MUJI制造商“冬季舒适家居拖鞋系列”限时仅39元>>

body { font-size: 14px; font-family: arial, verdana, sans-serif; line-height: 1.666; padding: 0; margin: 0; overflow: auto; white-space: normal; min-height: 100px }
td,input,button,select,body { font-family: Helvetica, "Microsoft Yahei", verdana }
pre { white-space: -o-pre-wrap; width: 95% }
th,td { font-family: arial, verdana, sans-serif; line-height: 1.666 }
img { border: 0 }
header,footer,section,aside,article,nav,hgroup,figure,figcaption { display: block }
blockquote { margin-right: 0px }
a,td a { color: #0080c0 }

原文地址:https://www.cnblogs.com/www-hsy-com/p/8111645.html

时间: 2024-11-06 16:20:51

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

类的继承与super()的意义以即如何写一个正确的异常类

这些东西都是我看了许多名师课程和自己研究的成果,严禁转载,这里指出了如何正确的自己定义一个异常类并看一看sun写的java的源代码话题一:子类的构造器执行是否一定会伴随着父类的构造执行? 1.this()与super()不能共存2.如果不显示地调用this()和super();子类对象的创建是否一定执行父类的构造3.既然super()和this()不能共存,又说子类的构造执行一定会执行父类的构造,那么我让子类的构造执行this()是不是就不能在执行父类的构造? 4.如果我非不让父类的构造执行,我

使用回调方式写POI导入excel工具类

场景是这样的:为了做一个excel导入的功能,为了尽可能的写一个通用的工具类,将与poi有关的东西都封装起来,以便以其他人员只用关心自己的业务,不用和poi打交道. 写到最后,现在还是会有poi的东西暴漏出来一点,暴漏出来的这个应该是必须的. 为了模拟这个场景,先写两个service方法,用于和数据库交互,存入从模板中读取的数据.代码如下: 1.berthservice public class BerthService { public void update(){ System.out.pr

自己写一个java.lang.reflect.Proxy代理的实现

前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Proxy类出来,功能和java.lang.reflect.Proxy一样,传入接口.代理内容,生成代理. 抛砖引玉吧,个人觉得自己写一些JDK里面的那些类挺好的,写一遍和看一遍真的是两个不同的概念,写一遍既加深了对于这些类的理解.提升了自己的写代码水平,也可以在写完之后对比一下自己的实现有哪些写得不好

【filter 页面重定向循环】写一个过滤器造成的页面重定向循环的问题

今天做一个过滤器,碰上页面重定向循环的情况: 浏览器的访问路径是:http://192.168.16.104:8080/biologyInfo/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login1.htmls 过滤器的类如下: 1 package com.agen.util;

JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践

JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识Class类 想要反射,你就必须要了解一个类--Class,我们知道,java程序中的各个java类都属于同一事物,我们通常用Classliability描述对吧,反射这个概念从JDK1.2就出来了,历史算是比较悠久了,这个Class可不是关键字哦,这个是一个类,他代表的是一类事物: 我们归根结底就

用java代码写一个简单的网上购物车程序

1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法. 2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删除商品,修改商品,清空购物车,求购物车中所有商品总金额方法.4.写一个测试类,测试上述方法. 4 5 商品类: 6 [java] view plain copy 7 8 public class Product { 9 private int productId;// 商品编号 10 privat

为DataGrid 写一个 DropDownListColumn

Net下有一个类DataGridColumn 作为 DataGrid 控件的不同列类型的基类. 有关此类型全部成员的列表.请參阅 DataGridColumn 成员. System.Object System.Web.UI.WebControls.DataGridColumn System.Web.UI.WebControls.BoundColumn System.Web.UI.WebControls.ButtonColumn System.Web.UI.WebControls.EditComm

死磕 java线程系列之自己动手写一个线程池

欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写的线程池如何测试? 简介 线程池是Java并发编程中经常使用到的技术,那么自己如何动手写一个线程池呢?本文彤哥将手把手带你写一个可用的线程池. 属性分析 线程池,顾名思义它首先是一个"池",这个池里面放的是线程,线程是用来执行任务的. 首先,线程池中的线程应该是有类别的,有的是核心线程,有

JavaScript 自己写一个 replaceAll() 函数

JavaScript 的  replace()  方法可以在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 但是,只输入字符串的话,仅替换第一个字符,当然也可以用正则表达式来进行全局替换: 1 // 查找所有 word 替换成 words 2 string.replace(/word/g,"words"); 那么,问题来了,如果我用的是变量呢?百度到可以这么来: 1 // 随便来一条字符串 2 let str = "How old are you? Ye