메서드 오버로딩(overloading)

ColinSong·2020년 10월 12일
0

Java의정석(기초)

목록 보기
3/25
post-thumbnail

오버로딩이 성립하기 위한 조건

  1. 메서드 이름이 같아야 한다.
  2. 매개변수의 개수 또는 타입이 달라야 한다.
  3. 반환 타입은 영향 없다.
  • Example01
//오버로딩이 아닌 메서드 중복정의

int add(int a, int b) {
	return a+b;
}

int add(int a, int b) {
	return x+y;
}
  • Example02
//오버로딩이 아닌 메서드 중복정의

int add(int a, int b) {
	return a+b
}

int add(int a, int b) {
	return (long)(a+b);
}
  • Example03
// 오버로딩

long add(int a, long b) {
	return a+b;
}

long add(int a, long b) {
	return a+b;
}

Ambiguous

  • 모호하다, 확실하지 않다.
package Day1012;
public class Ambiguous {
    public static void main(String[] args) {
	MyMath3 mm = new MyMath3();
	System.out.println("mm.add(3, 3) 결과 : " + mm.add(3,3)); //오류
    
    }
}
class MyMath3 {
	public MyMath3() {}
	
	//주석처리
//	int add(int a, int b) { 
//		System.out.println("int add(int a, int b) - ");
//		return a+b;
//	}
	
	1. 
	long add(long a, int b) {
		System.out.println("int add(long a, int b) - " );
		return a+b;
	}
	
	2.
	long add(long a, long b) {
		System.out.println("long add(long a, long b) - ");
		return a+b;
	}
    
	3. 
	long add(int a, long b) {
		System.out.println("long add(int a, long b) - ");
		return a+b;
	}

}

References

profile
안녕하세요:)

0개의 댓글