오버로딩 (Overloading)

‍김다솔·2021년 4월 13일
0

Method 오버로딩 (Overloading)

method : method name = n : 1

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

조건

long add(int a, long b) { return a + b; }
long add(long a, int b) { return a + b; }
  • 메서드 이름이 같다.
  • 매개변수 개수 또는 타입이 다르다.
  • 반환 타입은 영항 없다.

public class c6_5_210413 {
	public static void main(String[] args) {
		MyMath3 mm = new MyMath3();

		System.out.println(mm.add(3, 3)); // 매개변수가 모두 int형인 함수가 없으면 ambiguous 에러 발생
		System.out.println(mm.add(3L, 3));
		System.out.println(mm.add(3, 3L));
		System.out.println(mm.add(3L, 3L));

		int[] a = { 100, 200, 300 };
		System.out.println(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 x, long y) {
		return x + y;
	}

	int add(int[] arr) {
		int sum = 0;
		for (int i = 0; i < arr.length; i++) {
			sum += arr[i];
		}
		return sum;
	}
}

println() 메서드의 호출 순서

// System.out.println(mm.add(3, 3));

int result = mm.add(3, 3);
System.out.println(result);

mm.add(3, 3)이 먼저 호출 된 후에 println이 호출된다.

profile
💻🎧⚽

0개의 댓글

관련 채용 정보