`

植物大战僵尸与类与继承关系

    博客分类:
  • JAVA
阅读更多

           在学习继承之前,我们都有个疑惑i,那就是为什么要学类与继承,简单举个例子而言,老爸老妈多优秀,甚至长相,孩子生下来就基本具有了这个属性,老爸高,儿子就高,当然这不一定,只是举个例子,那么儿子就不用费心自己努力去长个了,比如老爸学习好,儿女就可以继承老爸优良传统,通过耳濡目染,久而久之就会学习好了,财富也是,也就是说羡煞旁人都得不到的好多东西,身为继承者就可以轻松得到了,这就添加了便利性,不需要再学习一遍。综上类的继承好处有:

. 1.提高了代码的重用性。
 2.提高程序的扩展性。

继承的关键字: extends
 语法格式:
 public class 类名b(子类或者超类或者派生类) extends 类名a(父类或者基类),类名 {
  
 }
 
 public class 类名c extends 类名b {
  
 }
 注意:Java的继承是单继承,一个类只能继承一个父类。

其中使用较多的是自动转型,这次代码用多态实现,确实感到代码的编辑过程中的丰富多彩

方法的重写,方法的重载,自动转型,继承

还有我在编辑植物大战僵尸时,犯得严重错误是:

凡是自动转型,所调用的方法必须在父类中存在,因此由于忽略了这一点导致很长时间都在寻找错误

这里利用所学知识可以实现一个简单的植物大战僵尸代码实现

这里是玩家代码实现

package lesson1302;
public class Player {
    public String name;
   
public void  use(String name,Plant a,Zombie b){
   this.name=name;
//System.out.println(name+"使用了"+a.name+"攻击了"+b.name);
}
public static void main(String[] args){
 
DancingZombie b1=new  DancingZombie("跳舞僵尸",100,500);
Peashooter a1=new Peashooter("豌豆射手",200,300);
Player p1=new Player();
p1.use("玩家张依依",a1,b1);
System.out.println(p1.name+"使用了"+a1.name+"攻击了"+b1.name);
while(a1.blood>0&&b1.blood>0){
a1.attack(b1);
System.out.println("张依依的豌豆射手正在攻击"+b1.name);
b1.attack(a1);
System.out.println("跳舞僵尸正在使劲吃"+a1.name);

}
if(a1.blood<0){
System.out.println("很遗憾你的豌豆射手被吃掉了,oh no!!!你的脑子被僵尸吃掉了");
}
if(b1.blood<0){
System.out.println("恭喜豌豆射手消灭了跳舞僵尸");
}


}
}
//两个父类

package lesson1302;

public class Plant {
 public String name;//定义名字
 protected int hp;//定义攻击力
 protected int blood;//定义血量
 //定义植物的攻击方法
 public void  attack(Zombie x){
  
 }
 

}

package lesson1302;

public class Zombie {
 public String name;//定义名字
 public int hp;//定义攻击力
 public int blood;//定义血量
 //定义僵尸的攻击方法
 public void  attack(Plant y){
  
 }

}
两个子类,僵尸和植物

package lesson1302;

public class Peashooter extends Plant {
 public String name;//定义名字
 protected int hp;//定义攻击力
 protected int blood;//定义血量
 public Peashooter(String name,int power,int blood){//给构造函数赋值
  this.name=name;//表示将传入的name值给当前调用构造函数的对象的name属性值
  this.hp=power;//表示将传入的power值给当前调用构造函数的对象的power属性值
  this.blood=blood;//表示将传入blood值给当前调用构造函数的对象的blood属性值
  }
 //定义植物的攻击方法
 public void attack(Zombie c){
  c.blood=c.blood-this.hp;
  System.out.println(this.name+"还剩血量:"+this.blood+"   "+c.name+"还剩血量"+c.blood);
 }

}

 

package lesson1302;

public class DancingZombie extends Zombie{
 public String name;//定义名字
 protected int hp;//定义攻击力
 protected int blood;//定义血量
 public  DancingZombie(String name,int power,int blood){//给构造函数赋值
  this.name=name;//表示将传入的name值给当前调用构造函数的对象的name属性值
  this.hp=power;//表示将传入的power值给当前调用构造函数的对象的power属性值
  this.blood=blood;//表示将传入blood值给当前调用构造函数的对象的blood属性值
  }
 //定义僵尸的攻击方法
 public void attack(Plant d){
  d.blood=d.blood-this.hp;
  System.out.println(this.name+"还剩血量:"+this.blood+"   "+d.name+"还剩血量"+d.blood);
 }

}

 

 

分享到:
评论

相关推荐

    植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合版

    植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合版! 植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合版! 植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合...

    Windows版 植物大战僵尸杂交版v2.0.88

    植物大战僵尸杂交版植物大战僵尸杂交版 植物大战僵尸杂交版植物大战僵尸杂交版 植物大战僵尸杂交版植物大战僵尸杂交版 植物大战僵尸杂交版植物大战僵尸杂交版 植物大战僵尸杂交版植物大战僵尸杂交版 植物大战僵尸...

    scratch植物大战僵尸

    我觉得还行,很还原了。6钟植物,4种僵尸。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 要想清楚,植物大战僵尸,到底是... 植物大战僵尸的发生,到底需要如何做到,不植物大战僵尸的发生,又会如何产生。

    植物大战僵尸.sb3 完整源码。包含植物大战僵尸素材。植物大战僵尸最新SB3版本

    《植物大战僵尸.sb3 完整源码解析与学习指南》 植物大战僵尸,这款深受全球玩家喜爱的经典塔防游戏,已经进入了Scratch编程的世界,以.sb3的形式提供了完整的源码,供编程爱好者们学习和研究。这个.sb3版本不仅包含...

    微信小游戏源码 植物大战僵尸(仅用于学习参考)

    微信小游戏源码 植物大战僵尸(仅用于学习参考)微信小游戏源码 植物大战僵尸(仅用于学习参考)微信小游戏源码 植物大战僵尸(仅用于学习参考)微信小游戏源码 植物大战僵尸(仅用于学习参考)微信小游戏源码 植物...

    html5微信小游戏源码 植物大战僵尸(仅用于参考)

    html5微信小游戏源码 植物大战僵尸(仅用于参考)html5微信小游戏源码 植物大战僵尸(仅用于参考)html5微信小游戏源码 植物大战僵尸(仅用于参考)html5微信小游戏源码 植物大战僵尸(仅用于参考)html5微信小游戏...

    植物大战僵尸.sb3 完整源码。包含植物大战僵尸素材。植物大战僵尸最新SB3版本,

    《植物大战僵尸.sb3 完整源码解析与学习指南》 在当今的数字娱乐世界中,编程教育已经成为孩子们接触科技的重要途径。Scratch作为一款由麻省理工学院(MIT)开发的图形化编程工具,以其直观易用的特性深受全球用户...

    基于Vue和Javascript的植物大战僵尸游戏设计源码

    该项目是一个用canvas实现的植物大战僵尸游戏,旨在为用户提供娱乐和挑战。系统提供了丰富的游戏功能,包括植物种植、僵尸攻击、关卡挑战等。通过该项目,开发者可以学习并实践Vue和Javascript技术的应用,为后续的...

    植物大战僵尸素材与源码

    《植物大战僵尸》是一款深受玩家喜爱的塔防类游戏,其独特的人物设定、丰富的关卡设计和策略性玩法使得这款游戏在全球范围内拥有大量的忠实粉丝。在这个压缩包中,包含的是该游戏的部分素材与源码,这对于想要深入...

    PSP植物大战僵尸 同人游戏

    3. **纯手绘艺术风格**:与原版《植物大战僵尸》的3D卡通渲染不同,该同人游戏选择了一种手绘的艺术风格,这意味着每一张游戏画面、每一个角色、植物和僵尸都是通过手工绘制完成的。这种风格为游戏赋予了独特的视觉...

    Scratch植物大战僵尸素材包

    总的来说,"Scratch植物大战僵尸素材包"是一个极好的教育工具,它将编程与娱乐相结合,让学习过程变得有趣而富有挑战性。无论是对编程感兴趣的孩子还是成年人,都能从中受益,享受创造自己的游戏世界带来的乐趣。

    H5编写的植物大战僵尸

    这是一款经典的塔防游戏,让您与可爱的植物一起抵御来袭的僵尸大军。 在游戏中,您将扮演一位植物园园丁,面对不断涌来的僵尸,您需要通过种植各种植物来保护自己的花园。每种植物都有独特的能力和攻击方式,您需要...

    植物大战僵尸htm5源码

    3. 僵尸和植物的碰撞检测:通过Canvas的路径和区域比较,实现僵尸与植物之间的碰撞检测,触发相应的游戏逻辑。 四、游戏状态管理 为了维护游戏的状态,如当前的分数、玩家拥有的资源、游戏进度等,需要一个有效的...

    html+js经典游戏植物大战僵尸中文版网页小游戏源码

    经典游戏植物大战僵尸中文版网页小游戏源码,《植物大战僵尸》是一款极富策略性的小游戏。可怕的僵尸即将入侵,每种僵尸都有不同的特点,例如铁桶僵尸拥有极强的抗击打能力等。玩家防御僵尸的方式就是栽种植物。 ...

    植物大战僵尸幼儿园版/植物大战僵尸宝宝版(pc)

    你们辛辛苦苦寻找的植物大战僵尸幼儿园版/植物大战僵尸宝宝版 来啦! 宝子们,快来冲鸭!

    Unity 3D的植物大战僵尸源码.zip

    《Unity 3D游戏开发:深入解析“植物大战僵尸”源码》 Unity 3D作为一款强大的跨平台游戏开发引擎,被广泛应用于各种类型的游戏制作,包括深受玩家喜爱的“植物大战僵尸”。这款休闲策略游戏以其独特的玩法、丰富的...

    植物大战僵尸(经典版)安装包

    《植物大战僵尸》是一款由PopCap Games开发,Electronic Arts发行的经典策略塔防游戏。自2009年首次推出以来,它在全球范围内赢得了广大玩家的喜爱,尤其适合休闲娱乐和提高玩家的策略思维能力。 游戏机制: 《植物...

    植物大战僵尸类模版设计

    此文档可能详细阐述了游戏中各种植物和僵尸的类设计,包括它们的属性、方法和继承关系,展示了面向对象编程在游戏开发中的应用。 5. **植物大战僵尸工程问题索引index.html**:这是一个项目问题的索引,可能是...

    植物大战僵尸源码

    《植物大战僵尸》是一款深受玩家喜爱的塔防类游戏,其源码的解析为我们提供了深入理解游戏机制的机会。源码中的关键元素主要包括游戏界面、角色动画、游戏逻辑以及用户交互等部分。 首先,"SWING画个框"这部分指的...

    植物大战僵尸源码.zip

    《植物大战僵尸》是一款深受玩家喜爱的塔防类小游戏,其源码的分析与学习对于了解游戏开发原理、编程技巧以及游戏逻辑设计有着极大的帮助。本文将深入探讨这款游戏的源码,带你走进游戏开发的世界。 首先,源码是...

Global site tag (gtag.js) - Google Analytics