(3)用抽象类完成下列任务。 1)设计抽象类Monster:包含了一个 attack 的抽象方法和私有属性name。子类提供其具体实现,如下面类图所示。2)设计类FireMonster,其中:F

it2023-10-19  77

(3)用抽象类完成下列任务。 1)设计抽象类Monster:包含了一个 attack 的抽象方法和私有属性name。子类提供其具体实现,如下面类图所示。

2)设计类FireMonster,其中:FireMonster 怪物的 attack 方法返回 “Attack with fire!” 3)设计类WaterMonster,其中:WaterMonster 怪物的 attack 方法返回 “Attack with water!” 4)设计类StoneMonster,其中:StoneMonster 怪物的 attack 方法返回 “Attack with stones!” 5)设计测试类TestMonster,检查以上类及方法是否正确。

package thirdjava;//这个是你的包的名字 public class TextMonster {//这个名字要和你建立的class的名字相同 public static void main(String[] args) {//一定要有主方法,否者该程序不运行,或者运行上次成功运行的程序 // TODO Auto-generated method stub Monster Fire = new FireMonster();//定义一个对象Fire Monster Water = new WaterMonster();//Monster是父类名称,WaterMonster是子类名称,Water是对象名称 Monster Stone = new StoneMonster();//固定语法? System.out.println(Fire.attract());//按照实验要求我们应该打印三行字符串 System.out.println(Water.attract());//如果要打印Attack with fire!,我们用Fire.attract() System.out.println(Stone.attract());//因为Fire.attract()返回的是“Attack with fire!” } } abstract class Monster {// 定义一个Monster抽象类 ,前面不要写public,因为只允许有一个public private String name; // 定义私有属性name//这是实验要求,但是这个程序完全没用到name public abstract String attract(); // 定义抽象方法attract(),固定句式 //要public,后面的类才能调用;abstract表示抽象类 } class FireMonster extends Monster {//定义一个子类FireMonster,固定句式 @Override//不知道为啥,反正加上这行就对了 public String attract() {//实现父类的抽象方法 return "Attack with fire!";//该方法的返回类型是String,所以return一个字符串 } } class WaterMonster extends Monster {//定义一个子类WaterMonster @Override public String attract() { return "Attack with water!"; } } class StoneMonster extends Monster {//定义一个子类StoneMonster @Override public String attract() { return "Attack with stone!"; } }
最新回复(0)