/**
 * A general game item. Specific game items extend this class.
 */
public abstract class Item extends Thing{
  
  /**
   * Test whether this item can be picked up.
   *
   * @return whether the item can be picked up
   */
  public abstract boolean canPickUp();
  
  /**
   * Use this item. Return the outcome of the action.
   *
   * @return the outcome of the action
   */
  public abstract Outcome useItem();
  
  public String toString() {
    return getThingType().toString();
  }
}
