import java.io.*;





public class Interface1  {
   private static void pause() {
    try {
      System.in.read();
    }
    catch (IOException e) {
    }
  }  // pause


  private static void test1() {
    paket1 p1=new paket1("paket1",100.2);
    paeckchen1 pck1=
         new paeckchen1("paeckchen1",5.);
    brief1 b1=new brief1("brief1",0.025);
    post [] karton = new post[3];
    karton[0]=p1;
    karton[1]=pck1;
    karton[2]=b1;
    double s=0;
    for (int i=0; i<3; i++)
      s=s+karton[i].getGewicht();
    System.out.println("Gesamtgewicht: "+s);
  }
  private static void test2() {
    paket2 p1=new paket2("paket1",100.2);
    paeckchen2 pck1=
         new paeckchen2("paeckchen1",5.);
    brief2 b1=new brief2("brief1",0.025);
    Ipost [] karton = new Ipost[3];
    karton[0]=p1;
    karton[1]=pck1;
    karton[2]=b1;
    double s=0;
    for (int i=0; i<3; i++) {
      s=s+karton[i].getGewicht();
      Ifarbe ifarbe = (Ifarbe) karton[i];
      System.out.println(ifarbe.getFarbe() );
    }
    System.out.println("Gesamtgewicht: "+s);
  }  // test2

  public static void main(String[] args) {
    test2();
    pause();
  }
}


abstract class post {
  abstract public String getAdresse();
  abstract public double getGewicht();
}

class paket1 extends post {
   String adr;
   double gewicht;

   public paket1(String adr, double gewicht) {
     this.adr = adr;
     this.gewicht = gewicht;
   }
   public String getAdresse() {
     return adr;
   }
   public double getGewicht() {
     return gewicht;
   }
}   // paket1

class paeckchen1 extends post {
   String adr;
   double gewicht;

   public paeckchen1(String adr, double gewicht) {
     this.adr = adr;
     this.gewicht = gewicht;
   }
   public String getAdresse() {
     return adr;
   }
   public double getGewicht() {
     return gewicht;
   }
}   // paeckchen

class brief1 extends post {
   String adr1;
   double gewicht1;

   public brief1(String adr, double gewicht) {
     this.adr1 = adr;
     this.gewicht1 = gewicht;
   }
   public String getAdresse() {
     return adr1;
   }
   public double getGewicht() {
     return gewicht1;
   }
}   // brief1

interface Ipost {
  public String getAdresse();
  public double getGewicht();
}
interface Ifarbe {
  public String getFarbe();
}

class paket2 implements Ipost,Ifarbe {
   String adr;
   double gewicht;

   public String getFarbe() {
    return "rot";
   }

   public paket2(String adr, double gewicht) {
     this.adr = adr;
     this.gewicht = gewicht;
   }
   public String getAdresse() {
     return adr;
   }
   public double getGewicht() {
     return gewicht;
   }
}   // paket2

class paeckchen2 implements Ipost,Ifarbe {
   String adr;
   double gewicht;

   public String getFarbe() {
    return "blau";
   }
   public paeckchen2(String adr, double gewicht) {
     this.adr = adr;
     this.gewicht = gewicht;
   }
   public String getAdresse() {
     return adr;
   }
   public double getGewicht() {
     return gewicht;
   }
}   // paeckchen2

class brief2 implements Ipost,Ifarbe {
   String adr1;
   double gewicht1;


   public String getFarbe() {
    return "gruen";
   }

   public brief2(String adr, double gewicht) {
     this.adr1 = adr;
     this.gewicht1 = gewicht;
   }
   public String getAdresse() {
     return adr1;
   }
   public double getGewicht() {
     return gewicht1;
   }
}   // brief2

