使用子类和超类

时间:2017-04-28 02:28:57

标签: java subclass superclass

class Undead{
   protected String food;
   protected String comesOut;
   Undead(){

   }
   Undead(String f){
       food = f;
   }
   public void setFood(String f){
       food = f;
   }
   public String getFood(){
       return food;
   }
   public void eats(){
       System.out.println("The undead eats "+ food);
   }
   public void comesOut(){
       System.out.println("The undead can come out" + comesOut);
   }

}

class Vampire extends Undead {
   private String name ;
   Vampire(){
   }
   Vampire(String n){
       name = n;
   }
   Vampire(String n, String f){
       name = n;
       food = f;
   }
   public void setName(String n){
       name = n;
   }
   public String getName(){
       return name;
   }
   public void eats(){
       System.out.println(name + "drinks" + food);
   }
   public void comesOut(){
       System.out.println(name + "comes out"+ comesOut);
   }
}

对于我的不死超类和吸血鬼子类的代码,我有以下内容。

当我尝试在名为coderunner的网站上运行时;这个网站没有给我主要功能,这个问题并没有给我一个示例输出。

我收到以下错误:

Syntax Error(s)
__Tester__.java:62: cannot find symbol
symbol : method setComesOut(java.lang.String)
location: class Undead
u.setComesOut("at anytime");
^
__Tester__.java:69: cannot find symbol
symbol : method setComesOut(java.lang.String)
location: class Vampire
v1.setComesOut("at night");
^
2 errors

我在ecclipse上试试这个并没有出现任何错误。知道问题所在。

编辑:

The superclass Undead contains

A protected String variable food.
A private String variable comesOut.
Two constructors
- one takes no parameter.
- one takes a String parameter food and assigns this value to the variable food.
A public method setFood() that takes a String parameter and sets the variable food to the parameter's value.
A public method getFood() that returns the value of food.
A public method eats() that prints "The undead eats [food]".
A public method comesOut() that prints "The undead can come out [comesOut]".

The subclass Vampire contains

A private String variable name.
Three constructors.
- one takes no parameter.
- one takes a String parameter name and assigns this value to the variable name.
- one takes two String parameters name and food and sets the variables name and food to these values.  
A public setName() method that takes a String parameter and sets name to the value of this parameter.
A public getName() method that returns the value of name.
A public method eats() that prints "[name] drinks [food]".
A public method comesOut() that prints "[name] comes out [comesOut]"

1 个答案:

答案 0 :(得分:1)

您需要添加一个名为“setComesOut”的方法,该方法将字符串作为参数。此函数应将Undead变量“comeOut”设置为给定的任何参数,类似于“setName”或“setFood”方法。