자바의정석

[자바의 정석 - 기초편] ch6-30,31 오버로딩

유호야 2022. 3. 10. 16:38
반응형

ch6-30 오버로딩

오버로딩 : 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것

파적 

하나의 메서드 이름에 1:다 로 매칭이 가능한 것
그것이 overloading!

overloading의 대표적인 예는 println() 이다. 

매개변수가 다를 수도 있고, 출력하는 타입이 다를 수도 있는 것.... ?

오버로딩을 지원하지 않는 경우 이름을 다 다르게 해야 하는 번거로움이 있다.

 


반환 타입은 오버로딩에 영향이 없다.

보기3의 경우ambigious 한 경우가 발생할 수 있다.

add(3, 3) 하게 되면 컴파일러가 어떤 메서드를 호출해야 하는지 모르기 때문에 에러가 뜬다.
따라서 이 경우에는 add(3, 3L) 과 같이 타입을 명확하게 해주어야 한다. 


메서드는 작업을 수행하는 것이기 때문에 일반적으로 "동사"의 단어를 이용한다.

정확한 명칭은 (메서드) 오버로딩이다. 
C++에는 연산자 오버로딩이 있다.

자바에는 자동으로 연산자 오버로딩이 있다. 
+ 의 역할이 3가지가 있는 것


반응형