JAVA项目----宠物小精灵11.24
public interface DisplayItem {/*** 获取物品的信息* @return*/String getItemInformation(); }
总的定义一个接口,返回所有物品的展示的信息。
接口里面是方法;(没有返回值)
如果实现这个接口的话,我们都要实现这个结构的方法。
-------------------------------------------------------------------------------------------------------------------------------
public abstract class Item implements DisplayItem {/*** 物品的名称*/protected String name;/*** 关卡的编号*/protected int levelNumber;protected boolean discovery; //”发现“public Item(String name){this.name = name;}public Item(String name, int levelNumber) {this.name = name;this.levelNumber = levelNumber;}public void setDiscovery(boolean discovery){this.discovery = discovery;}}
实现接口的类必须实现接口中声明的所有方法。
我的Item类是一个抽象类,他继承的DisplayItem接口,抽象类里面有构造方法,接口没有
------------------------------------------------------------------------------------------------------------------------------
/*** 怪物*/public class Monster extends Item{public Monster(String name) {super(name);}public Monster(String name, int levelNumber) {super(name, levelNumber);}@Overridepublic String getItemInformation() {return discovery ? name:"■";}
}
Monster类他是继承这一个大类”Item“,子类会继承父类中所有的公开的和受保护的成员(成员变量和构造方法)
然后呢就是Monster类自己重载getItemInformation的方法,这里想一想什么叫三元运算符
------------------------------------------------------------------------------------------------------------------------------
/*** 传送门*/public class Portal extends Item{private boolean next; //属于传送门的私有方法public Portal(boolean next) {super("传送门");this.next = next;}public Portal(String name, int levelNumber) {super(name, levelNumber);}@Overridepublic String getItemInformation() {if(discovery) {return next ? "→" : "←";}return "■";}}
继承之后还可能有属于自己的成员变量,并且构造方法呢也不是和父类一模一样
//举个例子
super("传送门");
------------------------------------------------------------------------------------------------------------------------------
public class Treasure extends Item {public Treasure(int levelNumber) {super("宝箱", levelNumber);}/*** 宝箱*/@Overridepublic String getItemInformation() {return discovery ? "۞" : "■" ;}
}
这个也是同理!!和上面
package com.cyx.pokemon.Item;public class HP extends Item {private int count;public HP(int levelNumber,int count) {super("天山雪莲", levelNumber); //可以直接用super赋值——》天山雪莲this.count = count;}/*** 使用药品可以回复血量* @return*/public int use (){count--;// if (count == 0) return -1;return 500*levelNumber;}/*** 检测药品是否可以从背包中销毁* @return*/public boolean canDestroy(){return count == 0;}@Overridepublic String getItemInformation() {return name;}
}
使用一个物品,count-- 调用一次use方法少一个count,然后返还一个对应的值
=========================================================================
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
