/**
Überladen mit Typanpassung.

Das Programm liefert folgende Ausgabe:

maximum(float a, float b)
Maximum von 12 und 21 ist 21.0

*/
/*-----------------------------------------------------------------------*/

class Ueberladen2
{
   /**
   *  Maximum zweier int-Zahlen bestimmen
   *  @param a erste Zahl
   *  @param b zweite Zahl
   *  @return Maximum der beiden Parameter
   */
   static int maximum(int a,int b)
   {  System.out.println("maximum(int a, int b)");
      return a>b?a:b;
   }

   /**
   *  Maximum zweier float-Zahlen bestimmen
   *  @param a erste Zahl
   *  @param b zweite Zahl
   *  @return Maximum der beiden Parameter
   */
   static float maximum(float a,float b)
   {  System.out.println("maximum(float a, float b)");
      return a>b?a:b;
   }

   /**
   *  Maximum zweier double-Zahlen bestimmen
   *  @param a erste Zahl
   *  @param b zweite Zahl
   *  @return Maximum der beiden Parameter
   */
   static double maximum(double a,double b)
   {  System.out.println("maximum(double a, double b)");
      return a>b?a:b;  
   }
   
   /**
   *  Testumgebung.<br>
   *  Erweiterung von long nach float <b>und</b> double möglich.<br>
   *  Die "billigere" Variante (nach float) wird benutzt (vgl. obige Ausgabe).
   */
   public static void main(String[] argv)
   {  long l1=12L,l2=21L;
      System.out.println("Maximum von "+l1+" und "+l2
            +" ist "+maximum(l1,l2));
   }
}
                   
