/* B E S C H R E I B U N G
Klassen:
  Folgende Hierarche wurde implementiert:
  
  N u t z t i e r  
    ^        ^                 
    |        |        
  Henne     Kuh
  
   
Bemerkungen:
Gemeinsame Eigenschaften der Programme Polymorhie30 -  Polymorhie39
1)
Die polymorphe Variable nutztiere ist ein array        

2)
 
 
*/


public class MainPolymorphie30 {
	public static void main(String[] args) {
		double zufall;
		int i;
		Nutztier nutztiere[];
		nutztiere = new Nutztier[2];

		for(i=0;i<2;i++){
			zufall = Math.random();
			if (zufall<0.5){
				nutztiere[i] = new Henne("ute", 3.1);			
			}
			else{ 
				nutztiere[i] = new Kuh("Elsa", 14);
			}
		}

		for(i=0;i<2;i++){
			String str;
			str = nutztiere[i].getTierlaut();
			System.out.println("Das Tier schreit: " + str);			
		}
	}
}

class Nutztier{
	// Name des Tiers
	private String name;
	
	public Nutztier(String pName){
		name = pName;
	}
	
    public String getTierlaut(){
        return("allgemeiner Tierlaut ");
    }
}

class Kuh extends Nutztier{
	private int alter;
    public Kuh(String pName, int pAlter){
    	super(pName);
        alter = pAlter;
    }

    public String getTierlaut(){
        return("muuuh");
    }
} 


class Henne extends Nutztier{
	private double gewicht;
    public Henne(String pName, double pGewicht){
    	super(pName);
    	gewicht = pGewicht; 
    }

    public String getTierlaut(){
      return("gaag");
    }
}
