Java 오버로딩(overloading)

nathan·2021년 12월 29일
0

JAVA

목록 보기
11/45

오버로딩(overloading)

  • 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것
메서드메서드 이름
n1
void println();
void println(boolean x);
void println(char x);
void println(char[] x);
void println(double x);
void println(float x);
void println(int x);
void println(long x);
void println(Object x);
void println(String x);

오버로딩이 성립하기 위한 조건

    1. 메서드 이름이 같아야 함.
    1. 매개변수의 개수 또는 타입이 달라야 함.
    1. 반환 타입은 영향이 없음.
    • 메서드 중복정의의 예시(1)
      • int add(int a, int b){return a+b;}
      • int add(int x, int y){return (long)(x+y);}
    • 메서드 중복정의의 예시(2)
      • int add(int a, int b){return a+b;}
      • long add(int x, int y){return x+y;}
    • 오버로딩은 성립하지만 error(ambiguous) 예시
      • long add(int a, long b){return a+b;}
      • long add(long x, int y){return x+y;}
      • add(3, 3)을 했을 때 어느 메서드를 사용해야할지 모호함

오버로딩 예제

  • 오버로딩의 올바른 예 - 매개변수는 다르지만 같은 의미의 기능을 수행함
class MyMath3{
    int add(int a, int b){
        return a+b;
    }

    long add(long a, long b){
        return a+b;
    }
    
    int add(int[] a){
        int result = 0;
        for(int i = 0; i < a.length; i++) {
            result += a[i];
        }
        return result;
    }
}
profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글