/* B E S C H R E I B U N G

Diese Version unterscheidet sich von der Vorgängerversion durch:
 
1)
Nicht der Zufall, sondern der Anwender gibt an, ob ein Kreis 
oder ein Rechteck angelegt wird.
*/

import java.io.*;

public class MainPolymorphie11 {
	public static void main(String[] args) throws Throwable {
		int zahl;
		GeoForm f;
		System.out.println("Bitte k oder r eingeben");		
		System.out.println("k bedeutet Kreis anlegen ");
		System.out.println("r bedeutet Rechteck anlegen ");		
		BufferedInputStream myEingabeZeichen = new BufferedInputStream(System.in);
		zahl=myEingabeZeichen.read();
		// Nur das 1. Zeichen des Eingabestroms wird verwendet.
		myEingabeZeichen.close();
		if(zahl==(int)'k'){
			f = new Kreis(2);			
		}
		else{
			f = new Rechteck(10,20);			
		}
		f.getGezeichneteGeoForm();		
	}	
}		

// Klasse Gemetrische Form
class GeoForm {
	// Name der geometrischen Form
	private String name;

	public GeoForm(String pname){
		setName(pname);
	}

	public void setName(String pname){
		name = pname;
	}

	public String getName(){
		return(name);
	}

	public void getGezeichneteGeoForm(){
	}
}


class Rechteck extends GeoForm{
	private double laenge;
	private double breite;
	
	public Rechteck(double plaenge, double pbreite){
		super("Rechteck");
		setLaenge(plaenge);
		setBreite(pbreite);		
	}

	public void setLaenge(double plaenge){
		laenge = plaenge;
	}

	public void setBreite(double pbreite){
		breite = pbreite;
	}

	public double getLaenge(){
		return(laenge);
	}
	
	public double getBreite(){
		return(breite);
	}

	public void getGezeichneteGeoForm(){
		System.out.print("Zeichnet Rechteck mit: "); 
		System.out.print("Laenge= "+getLaenge());
		System.out.print(" und Breite= "+getBreite());		
	}
}


class Kreis extends GeoForm{
	private double radius;
	
	public Kreis(double pradius){
		super("Kreis");
		setRadius(pradius);
	}

	public void setRadius(double pradius){
		radius = pradius;
	}

	public double getRadius(){
		return(radius);
	}

	public void getGezeichneteGeoForm(){
		System.out.println("Zeichnet Kreis mit Radius= "+getRadius());
	}
}

