// duynotes blog
public abstract class KnifeStore {
  public Knife orderKnife(String knifeType) {
    Knife knife;
    // now creating a knife is a method in the
    knife = createKnife(knifeType);
    knife.sharpen();  
    knife.polish();
    knife.package();
  return knife;
}
  abstract Knife createKnife(String type);
}