메서드 오버로딩

서지우·2023년 7월 6일
0

JAVA

목록 보기
13/28

메서드 오버로딩이란?

하나의 클래스에 같은 이름의 메서드를 여러 개 정의하는 것을 말함.

overload : 과적하다. 부담을 많이 지우다.


오버로딩의 조건

- 메서드의 이름이 같아야 함
- 매개변수의 개수 또는 타입이 달라야 함
- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립 안됨
  (리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못함)

오버로딩의 예시

println메서드

전달받는 매개변수의 타입에 따라 다음과 같이 다양한 원형 중에서 적절한 원형을 호출하게 된다.


매개변수의 이름이 다른 것은 오버로딩이 아니다

리턴타입은 오버로딩의 성립조건이 아니다.

매개변수의 타입이 다르므로 오버로딩이 성립한다.

올바른 예 - 매개변수는 다르지만 같은 의미의 기능수행


실습 - ch06 / S08.java

class CalcUtil {
    public static int add(int a, int b){
        return a + b;
    }
    
    // 오버로딩(같은 이름의 다른 메서드를 생성)
    public static int addThree(int a, int b, int c){
        return a + b + c;
    }

    // 리턴 타입이 달라지더라도 오버로딩이 가능하다
    public static long add(long a, long b, long c){
        return a + b;
    }

    public static void print(String str, int num) {
        System.out.println(str + num);
    }    
    // 사용되는 매개변수 타입이 같더라도 위치가 달라지면 오버로딩이 된다.
    // 이런 방식으로 오버로딩하는 것은 추천하지 않음    
    public static void print(int str, String num) {
        System.out.println(str + num);
    }
}

public class S08 {
    public static void main(String[] args) {
        
    }
}
profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글