ch6-30,31 오버로딩

ch6-30 오버로딩

  • 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것

ex )

void println()

void println(boolean x)

void println(int x )

...

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

  1. 메서드 이름이 같아야 한다.
  2. 매개변수의 개수 또는 타입이 달라야 한다.
  3. 반환 타입은 영향이 없다.

ex )

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

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

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

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

→ 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(4L, 3) 결과: "  + mm.add(4L,3));
		System.out.println("mm.add(3, 5L) 결과: "  + mm.add(3,5L));
		System.out.println("mm.add(3L, 8L) 결과: " + mm.add(3L,8L));
		int[] a = {100, 200, 300};
		System.out.println("mm.add(a) 결과: " + mm.add(a));
   }
}
class MyMath3 {
	int add(int a, int b) {
		return a+b;
	}
	long add(int a, long b) {
		return a+b;
	}
	long add(long a, int b) {
		return a+b;
	}
	long add(long a, long b) {
		return a+b;
	}
	int add(int[] a) {		// 배열의 모든 요소의 합을 결과로 돌려준다.
		int result = 0;
		for(int i=0; i < a.length;i++) 
			result += a[i];
		return result;
	}
}

좋은 웹페이지 즐겨찾기