본문 바로가기
프로그래밍/JAVA

자바의 정석 기초 ( 오버로딩 )

by ✲ 2020. 7. 9.
반응형

남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.

오버로딩

- 한 클래스 안에 같은 이름의 메서드 여러개 정의

ex)

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)

 

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

- 메서드 이름이 같아야 한다.

- 매개변수 개수 또는 타입이 달라야 한다.

- 반환 타입은 영향없다.

 

int add(int a, int b) {return a+b;}

int add(int x, int y) {return x+y;}

두개는 오버로딩 X , 변수 이름만 다름 (a, b, -> x, y)

위의 내용은 메서드 중복 정의 add(int, int) is already defined

 

int add (int a, int b) {return a+b;}

long add(int a, int b) {return (long)(a+b);}

중복 정의 오버로딩 X , 매개변수 개수와 타입이 동일함

 

long add (int a, long b) {return a+b;}

long add (long a, int b){ return a+b;}

오버로딩 성립 , 단 add(3,3)을 할 경우 The method add(int,int) is ambiguous for the type

반응형

댓글