
자바 자바 | 과부하 과부하 | 메서드 오버로드 조건
과부하 과부하
같은 클래스 내에서 구분할 수 있도록 변하기 쉬운또는 다른 이름가지다
같은 클래스 내에서 구분할 수 있도록 방법모든 학위 다른 이름가지다
하지만 자바에서는 같은 이름의 메소드가 있어도 매개변수의 수 또는 유형은 다르다 같은 이름사용할 수 있습니다.
과부하 과부하클래스 내에서 같은 이름여러 방법을 정의하는 것입니다.
과부하 과부하 상태
오버로딩 조건을 충족하지 않는 메서드는 중복 정의로 간주되어 컴파일 시간 오류를 생성합니다.
- 같은 이름의 방법이다
- 매개변수 숫자 또는 유형그것은 다르다
- 반환 유형은 중요하지 않습니다.
class Ex6_10 {
public static void main(String args()) {
MyMath3 mm = new MyMath3();
System.out.println("mm.add(3, 3) 결과:" + mm.add(3,3));
System.out.println("mm.add(3L, 3) 결과: " + mm.add(3L,3));
System.out.println("mm.add(3, 3L) 결과: " + mm.add(3,3L));
System.out.println("mm.add(3L, 3L) 결과: " + mm.add(3L,3L));
int() a = {100, 200, 300};
System.out.println("mm.add(a) 결과: " + mm.add(a));
}
}
class MyMath3 {
int add(int a, int b) {
System.out.print("int add(int a, int b) - ");
return a+b;
}
long add(int a, long b) {
System.out.print("long add(int a, long b) - ");
return a+b;
}
long add(long a, int b) {
System.out.print("long add(long a, int b) - ");
return a+b;
}
long add(long a, long b) {
System.out.print("long add(long a, long b) - ");
return a+b;
}
int add(int() a) { // 배열의 모든 요소의 합을 결과로 돌려준다.
System.out.print("int add(int() a) - ");
int result = 0;
for(int i=0; i < a.length;i++)
result += a(i);
return result;
}
}
