abstract class Seasoning {
  public abstract String taste();
}
 
class Salt extends Seasoning {
  public String taste() { return "Salty"; }
}
 
class Pepper extends Seasoning {
  public String taste() { return "Hot"; }
}
 
abstract class Edible {
  protected Seasoning _seasoning = new Salt();
  public void setSeasoning(Seasoning s) { _seasoning = s; }
  public void show() {
    System.out.println(_seasoning.taste() + " " + this);
  }
}
 
class PopCorn extends Edible {
  public String toString() { return "pop corn"; }
}
 
public class App {
  public static void main(String args[]) {
    Edible e = new PopCorn();
    e.setSeasoning(new Salt());
    e.show();
    e.setSeasoning(new Pepper());
    e.show();
  }
}