用Java实现:假设有以下父类Item public abstract class Item { String name;//物品名称 int price;//价格 public void buy(){//购买行为 System.out.println("购买"); } public void effect() { System.out.println("物品使用后,可以有效果");//功效} public abstract boolean disposable(); } 请设计多个子类继承该父类,能够将父类的基本属性都继承,对于不同的物品使用(disposable)之后,返回的结果应该有两种情况,一种是使用之后就消失了,比如血瓶,返回的结果为真,另外一类物品是使用了之后还会继续存在,比如武器,返回的结果为假。请设计子类重写父类,将这个效果展现出来。
时间: 2024-03-09 14:44:40 浏览: 61
ikm_java_8.pdf
下面是Java代码实现:
```java
// 物品类
public abstract class Item {
String name; // 物品名称
int price; // 价格
public void buy() { // 购买行为
System.out.println("购买 " + name);
}
public void effect() { // 物品使用后的效果
System.out.println("物品使用后,可以有效果");
}
public abstract boolean disposable(); // 物品是否是一次性使用的
}
// 血瓶类
public class LifePotion extends Item {
public LifePotion(String name, int price) {
this.name = name;
this.price = price;
}
@Override
public boolean disposable() {
return true;
}
@Override
public void effect() { // 血瓶使用后的效果
System.out.println(name + " 使用后,恢复了100点血量");
}
}
// 武器类
public class Weapon extends Item {
public Weapon(String name, int price) {
this.name = name;
this.price = price;
}
@Override
public boolean disposable() {
return false;
}
@Override
public void effect() { // 武器使用后的效果
System.out.println(name + " 使用后,增加了50点攻击力");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Item item1 = new LifePotion("血瓶", 50);
Item item2 = new Weapon("长剑", 200);
item1.buy();
item1.effect();
System.out.println(item1.disposable());
item2.buy();
item2.effect();
System.out.println(item2.disposable());
}
}
```
输出结果为:
```
购买 血瓶
血瓶 使用后,恢复了100点血量
true
购买 长剑
长剑 使用后,增加了50点攻击力
false
```
阅读全文