JAVA 메소드 오버로딩

지정욱·2023년 11월 29일
0

메소드 오버로딩에 대해서 헷갈렸던 부분이 있었는데 계속 기억하기 위해서 작성해게 되었다. 내가 헷갈렸던 부분은 리턴타입이 같아야 오버로딩이 가능한 줄만 알았는데, 리턴타입은 상관이 없던 것이였다.

메소드는 한 클래스 내에, 이름은 같지만 매개변수의 개수나, 타입이 다르면 여러개의 메소드를 중복해서 작성할 수 있다. 이것을 바로 오버로딩이라고 한다.
그렇다면 왜 메소드 오버로딩을 사용하는 것일까?

바로 자바의 다형성을 하기 위해서이다.

여러개의 메소드가 오버로딩 되려면 두 조건을 만족해야 한다.

  • 메소드의 이름이 같아야 한다.
  • 매개변수의 타입이나 개수가 달라야 한다.

다음은 오버로딩의 실패사례이다.

public class MerhodOverloading{
	public int sum(int i, int j){
    	return i+j;
    }
    public double sum(int i, int j){
    	return (double)(i+j);
    }
}

실패한 이유는 바로 타입이 다르지도 않고, 개수도 다르지 않기 때문이다!

그럼 성공한 사례도 함께 보도록 하자.

 public class MethodOverloading{
        public int sum(int i){
            return i;
        }
        public double sum(int i, int j){
            return (double)(i + j);
        }
        public int sum(double i){
            return (int)i;
        }
    }

꼭 기억하도록 하자. 리턴 타입은 메소드를 구분하는 기준으로 사용하지 않는다는 것을!

profile
T자형 개발자가 되자

0개의 댓글