package edu.columbia.cs.cs1007.comics;
/**
* An abstract class Superhero.
* @author Julia Stoyanovich (jds2109@columbia.edu)
* COMS 1007, Summer 2009
*
*/
public abstract class SuperHero extends SuperBeing {
private String _superpower;
/**
* Constructor.
* @param name
* @param superpower
*/
public SuperHero(String name, String superpower) {
super(name);
_superpower = superpower;
}
/**
* Accessor that gets the superpower of the superhero.
* @return superpower
*/
public String getSuperpower() {
return _superpower;
}
/**
* Convey your message to the world.
* @return message
*/
public String speakUp() {
return super.speakUp() + " : I will kill the villain using my superpower, " +
_superpower + ", and will save the world";
}
/**
* Save the world from a villain.
* @return world status, as a string
*/
public String saveTheWorld(Villain villain) {
String dialogue = killVillain(villain);
return dialogue;
}
/**
* Abstract method, must be overridden in the subclass.
* @param villain
* @return true on success, false on failure
*/
public abstract String killVillain(Villain villain);
}
|