//Titel:            Testbeispiel für Interface-Technik
//Version:          1.0
//Copyright:        HS-Harz, FB AI
//Autor:            Dipl.-Inf. Dipl.-Ing. (FH) Michael Wilhelm
//Firma:
//Beschreibung:


// Interface Beispiel

import java.awt.*;
import java.awt.event.*;

import java.io.*;

import java.util.Vector;



public class Test_Vererbung {



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


  private void test1() {
    rechteck r1, r2;
    kreis k1, k2;
    flaeche f;
    r1 = new rechteck(1);
    r2 = new rechteck(2);

    k1 = new kreis(3);
    k2 = new kreis(4);

    System.out.println( r1.print() );
    System.out.println( r2.print() );

    System.out.println( k1.print() );
    System.out.println( k2.print() );

    f = r1;
    System.out.println( f.print() );
    f = k1;
    System.out.println( k1.print() );
    System.out.println( );
    System.out.println( );
  }

  private void test2() {
    rechteck r[];
    kreis k[];
    flaeche f[];
    int i;
    r = new rechteck[3];
    for (i=0; i<3; i++) r[i] = new rechteck(i+1);

    k = new kreis[3];
    for (i=0; i<3; i++) k[i] = new kreis(10+i);

    f = new flaeche[6];

    f[0] = r[0];
    f[1] =  k[2];
    f[2] =  k[1];
    f[3] = r[1];
    f[4] =  k[0];
    f[5] = r[2];
    for (i=0; i<6; i++)
      System.out.println( f[i].print() );
  }

    // MAIN
  static public void main(String[] args) {
    Test_Vererbung v = new Test_Vererbung();
    v.test1();
    v.test2();
    pause();
  }

}


abstract class flaeche  {

  int nr;

  public flaeche(int nr) {
    this.nr = nr;
  }

	public abstract String print();

} // flaeche


class rechteck extends flaeche {

  public rechteck(int nr) {
    super(nr);
  }

	public String print() {
    return nr+" Ich bin ein Rechteck";
  }

}

class kreis extends flaeche {

  public kreis(int nr) {
    super(nr);
  }
	public String print() {
    return nr+" Ich bin ein Kreis";
  }

}



