public class TestMethodOverloading {
  /** Metoda main */
  public static void main(String[] args) {
    // Wywołanie metody max z parametrami typu int
    System.out.println("Maksimum liczb 3 i 4 to "
      + max(3, 4));

    // Wywołanie metody max z parametrami typu double
    System.out.println("Maksimum liczb 3.0 i 5.4 to "
      + max(3.0, 5.4));

    // Wywołanie metody max z trzema parametrami typu double
    System.out.println("Maksimum liczb 3.0, 5.4 i 10.14 to "
      + max(3.0, 5.4, 10.14));
  }

  /** Zwraca maksymalną wartość z dwóch liczb typu int */
  public static int max(int num1, int num2) {
    if (num1 > num2)
      return num1;
    else
      return num2;
  }

  /** Zwraca maksymalną wartość z dwóch liczb typu double */
  public static double max(double num1, double num2) {
    if (num1 > num2)
      return num1;
    else
      return num2;
  }

  /** Zwraca maksymalną wartość z trzech liczb typu double */
  public static double max(double num1, double num2, double num3) {
    return max(max(num1, num2), num3);
  }
}
