자바 JAVA | 오버로딩



자바 자바 | 과부하 과부하 | 메서드 오버로드 조건

과부하 과부하

같은 클래스 내에서 구분할 수 있도록 변하기 쉬운또는 다른 이름가지다

같은 클래스 내에서 구분할 수 있도록 방법모든 학위 다른 이름가지다

하지만 자바에서는 같은 이름의 메소드가 있어도 매개변수의 수 또는 유형은 다르다 같은 이름사용할 수 있습니다.

과부하 과부하클래스 내에서 같은 이름여러 방법을 정의하는 것입니다.

과부하 과부하 상태

오버로딩 조건을 충족하지 않는 메서드는 중복 정의로 간주되어 컴파일 시간 오류를 생성합니다.

  1. 같은 이름의 방법이다
  2. 매개변수 숫자 또는 유형그것은 다르다
  3. 반환 유형은 중요하지 않습니다.

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;
	}
}