Java

자바 메소드 오버로딩(Method Overloading) 하는 방법

567Rabbit 2024. 5. 31. 16:24

메소드 오버로딩(Method Overloading) 이란?

 

같은 이름의 메소드를 여러 개 정의하되, 서로 다른 매개변수 목록을 가지도록 하는 프로그래밍 기법이다.

메소드 오버로딩을 통해 같은 동작을 수행하지만, 입력값이 다를 경우 다른 방식으로 처리할 수 있다.

 

함수이름 하나만 가지고도 실행할 수 있게된다. (ex) add함수

 

 

public class AddMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//메소드 오버로딩 하기 전
		Add add1 = new Add();
		int result = add1.add(3, 4);
		
		System.out.println(result);
		
		double result2 = add1.addDouble(3.9, 2.88);
		System.out.println(result2);
		
		
		String result3 = add1.addString("hi","bye");
		System.out.println(result3);
		
		//메소드 오버로딩
		int result4 = add1.add(3,10,7);
		System.out.println("result4 : " + result4);

	}

}

 

public class Add {
	
	//메소드 오버로딩 하기 전
	int add(int x, int y) {
		return x+y;
	}
	
	double addDouble(double x, double y){
		return x+y;
	}
	
	String addString(String x, String y){
		return x + " , " + y;
	}
	
	//메소드 오버로딩
	int add(int x, int y, int z){
		return x + y + z;
	}

}

 

 

 

 

 

 

+ 예시를 보자. Parent는 오버로딩 하였고, Child는 오버로딩 하지 않았다.

 

  다음과 같이 함수 자체에 파라미터를 직접 입력하는 것을 오버로딩 한다고 한다.

 

 

 

 

*** 오버로딩할 때 중요한 점은, 디폴트 클래스를 만들어 주어야 한다는 점이다.

 

 

 

public Parent() {

}

 

처럼 디폴트를 해주지 않는다면, 모든 Parent() 클래스가 아래와 같이 오버로딩 한 함수로 적용되기 때문에,

Child에서 Parent를 이용할 때 등 오류가 발생한다.