package base;
import java.util.*;
class Simple extends Item {
  int weight;
  public static Simple make(String n,int w) {
    Simple res = new Simple();
    res.name = n; 
    res.weight = w;
    return res;
  }
  public int check() {
      System.out.println(
           "Simple object "+name+
           " weighs "+weight);
      return weight;
  }
}
public class Main {
  static public void main(String[] argv)  {
      Container c1= Container.make("Container 1",4);
      Container c2= Container.make("Container 2",1);
      Container c3= Container.make("Container 3",1);
      Simple apple= Simple.make("apple",1);
      Simple pencil= Simple.make("pencil",1);
      Simple orange= Simple.make("orange",1);
      Simple kiwi= Simple.make("kiwi",1);
      Simple banana= Simple.make("banana",1);

      c3.addItem(kiwi);     // /*\java{c3}*/ weighs 1
      c2.addItem(c3);       // /*\java{c2}*/ weighs 1
      c2.addItem(apple);    // /*\java{c2}*/ weighs 2 /*\textbf{overload!}*/
      c1.addItem(orange);   // /*\java{c1}*/ weighs 1 
      c1.addItem(pencil);   // /*\java{c1}*/ weighs 2
      c1.addItem(c2);       // /*\java{c1}*/ weighs 4 
      c1.check();           // /*\java{c1}*/ is ok
      System.out.println(" done with Container c1 ");

      c1.addItem(banana);   // this overflows /*\java{c1}*/    
      c1.check();           // so /*\java{check}*/ will complain
      System.out.println(" done with Container c1 ");
  }
}

