Same named method and different number of parameters.
예제1 - 숫자들의 sum 구하기
public static int sumTwoNum(int a, int b) {
return a + b;
}
public static int sumThreeNum(int a, int b, int c) {
return a + b + c;
}
public static int sumFourNum(int a, int b, int c, int d) {
return a + b + c + d;
}
메소드 이름이 다 다르기 때문에 복잡하고 기억하기 어렵다.
public static int sum(int a, int b) {
return a + b;
}
public static int sum(int a, int b, int c) {
return a + b + c;
}
public static int sum(int a, int b, int c, int d) {
return a + b + c + d;
}
Overloading하면 읽기 쉽고 기억하기 훨씬 쉽다.
package com.Hazel;
public class Main {
public static void main(String[] args) {
calcFeetAndInchesToCentimeters(50);
}
public static double calcFeetAndInchesToCentimeters(double feet, double inches) {
if(feet < 0 || inches < 0 || inches > 12) {
return -1;
}
double centimeters = feet * 12 * 2.54;
centimeters += inches * 2.54;
System.out.println(feet + " feet and " + inches + " inches = " + centimeters + " centimeters" );
return centimeters;
}
public static double calcFeetAndInchesToCentimeters(double inches) {
if(inches < 0) {
return -1;
}
double feet = (int) inches / 12;
double remain = inches % 12;
System.out.println(inches + " is equal to " + feet + " feet and " + remain + " inches" );
return calcFeetAndInchesToCentimeters(feet, remain);
}
}