Search code examples
javasubclasssuperclass

Program for Undead and Vampire using subclasses and superclasses


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);
   }
}

I have the following for my code for the undead superclass and the vampire subclass.

When I try running this on a website called coderunner; this website doesn't give me the main function and this question doesn't give me an example output.

I get the following error:

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

I try this on ecclipse and there doesn't appear to be any errors. Any idea where the problem lies.

Edit:

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]"

Solution

  • You need to add a method called "setComesOut" that takes a string as a parameter. This function should set the Undead variable "comesOut" to whatever parameter is given, similar to your "setName" or "setFood" methods.