/* B E S C H R E I B U N G

1) 
Gemeinsame Eigenschaften der Programme PolymorhieArray10 -  
PolymorhieArray19
Die polymorphe Variable feld ist _ein_ array
*/

public class MainPolymorphieArray10 {
	public static void main(String[] args) {
		int i;
		double zufall;
		GeoForm[] feld;
		feld=new GeoForm[3];
		
		for(i=0;i<3;i++){
			zufall = Math.random();
			if (zufall<0.5){
				feld[i] = new Kreis(2);			
			}
			else{ 
				feld[i] = new Rechteck(10,20);			
			}
		}
		for(i=0;i<3;i++){		
			feld[i].zeichneGeoForm();
		}
	}
}

// Klasse Gemetrische Form
class GeoForm {
	public void zeichneGeoForm(){
	}
}

class Rechteck extends GeoForm{
	private double laenge;
	private double breite;
	
	public Rechteck(double plaenge, double pbreite){
		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 zeichneGeoForm(){
		System.out.print("Zeichnet Rechteck mit: "); 
		System.out.print("Laenge= "+getLaenge());
		System.out.println(" und Breite= "+getBreite());		
	}
}


class Kreis extends GeoForm{
	private double radius;
	
	public Kreis(double pradius){
		setRadius(pradius);
	}

	public void setRadius(double pradius){
		radius = pradius;
	}

	public double getRadius(){
		return(radius);
	}

	public void zeichneGeoForm(){
		System.out.println("Zeichnet Kreis mit Radius= "+getRadius());
	}
}

