Java/Java 기본

메소드 오버로딩

검정비니 2018. 6. 23. 15:55
728x90
반응형

메소드 오버로딩



오버로딩이란? -> 매개 변수의 유형과 개수가 다르게 하여 같은 이름의 메소드를 여러 개 가질 수 있게 하는 기술



자바에서는 한 클래스 내에 이름이 같지만 인자의 타입이나 개수가 서로 다른 여러 개의 메소드를 중복 작성할 수 있다. 이것을 메소드 오버로딩(method overloading) 혹은 메소드 중복이라고 부른다. 메소드 오버로딩은 객체 지향적 특징 중 다형성 의 한 종류이다. 여러 개의 모소드가 메소드 오버로딩으로 성립되려면 다음 세 조건을 모두 만족하여야 한다.


1) 메소드 이름이 동일하여야 한다.


2) 메소드 인자의 개수가 서로 다르거나, 메소드 인자의 타입이 서로 달라야 한다. (타입이 같고 매개 변수의 이름만 다르다고 해서 오버로딩이 되는 것이 아니다.)


3) 메소드의 이름이 같고 인자의 개수나 타입이 모두 같은데 메소드의 리턴 타입이 다르면 메소드 오버로딩이 성립되지 않으며 컴파일 오류가 발생한다.



이름이 동일하고 인자의 타입이나 개수가 모두 동일하지만 접근 지정자가 서로 다른 두 메소드가 작성되면 컴파일 오류가 발생하게 된다. 접근 지정자는 메소드의 오버로딩과는 아무런 관계가 없기 때문이다.




- 메소드 오버로딩 성공 사례


class MethodOverloading {

public int getSum(int i, int j) {

return i + j;

}


public int getSum (int i, int j, int k) {

return i + j + k;

}

}



- 메소드 오버로딩 실패 사례


class MethodOverloading {

public int getSum(int i, int j) {

return i + j;

}


public double getSum(int i, int j) { //리턴 타입이 다르면 오버로딩이 성립되지 않는다.

return i + j;

}


private int getSum(int i, int j) { //접근 지정자는 오버로딩과 전혀 상관이 없는 부분.. 오버로딩 실패

return i + j;

}

}

반응형

'Java > Java 기본' 카테고리의 다른 글

this 키워드  (0) 2018.06.23
다형성  (0) 2018.06.23
인자 전달  (0) 2018.06.23
메소드 형식  (0) 2018.06.22
객체 배열  (0) 2018.06.22