public class AddTest {
public static void main(String[] args) {
// 두 정수를 더하는 함수를 메소드로 가지고 있는 클래스를 만들자.
// 이 클래스를 이용해서 3과 5를 더해보자.
Add n1 =new Add();
public class Add {
// 이 클래스에는 멤버 변수가 없다.
// 두 정수를 더해서 보여주는 함수
int sum(int num1, int num2){
return num1+num2;
}
// 두 실수를 더하는 함수
double dsum(double num1, double num2){
return num1+num2;
}
// 왼쪽은 정수, 오른쪽은 실수를 더하는 함수
//sumIntDouble(3,5.321)
double sumIntDouble(int num1, double num2){
return num1+num2;
}
// 파라미터(int num1, double num2)와 데이터 타입 double sumIntDouble은 다르지만 다 숫자를 더하는 함수들이다.
// dsum, sumIntDouble 구분말고
// 리턴데이터타입과 파라미터가 다르지만 함수이름은 sum으로 통일하자
// 이를 "method overloading" 이라고 한다!
public class Add {
int sum(int num1, int num2){
return num1+num2;
}
// 두 실수를 더하는 함수
double sum(double num1, double num2){
return num1+num2;
}
// 왼쪽은 정수, 오른쪽은 실수를 더하는 함수
//sumIntDouble(3,5.321)
double sum(int num1, double num2){
return num1+num2;
}
sum()으로 통일하여도 파라미터 상관없이 작동합니다.
오버로딩의 조건
1. 메소드 이름이 같아야 한다.
2. 파라미터(=매개변수)의 개수와 타입 또는 순서가 하나라도 달라야 한다.
3. 파라미터의 개수, 타입이 같은상황에 리턴 타입만 다르다고해서 오버로드가 성립되는건 아니다.