728x90
오버로딩이란 메소드 이름은 같지만 다른 역할을 하는 메소드들을 만드는 것이다.
흔히들 오버라이딩과 오버로딩을 비교하곤 하지만 다른 개념이라 생각하여 따로 정리했다.
나는 개인적으로 오버로딩이란 개념을 좋아한다.
왜냐하면 같은 메소드 이름으로 여러 기능을 하는 메소드를 만들수 있기때문에 메소드 이름 작명의 수고를 덜어준다.
이름을 짓는 건 언제나 창작의 고통이기 때문에 오버로딩을 좋아하게 되었다.
그래서 오버로딩 어디까지 할 수 있는지 알아보기 위해 글을 쓴다.
1. 매개변수가 다를때
가장 보편적인 경우이다.
매개변수가 다를때 오버로딩이 가능하다.
(1) 매개변수 갯수가 다를때
public void Method1() {}
public void Method1(int a) {}
(2) 매개변수 타입이 타를때
매개변수 갯수가 같아도 타입이 다르다면 오버로딩이 가능하다.
public void Method1(String a) {}
public void Method1(int a) {}
2. 반환타입이 다를때
이 글을 작성하게 된 계기기도 하지만 반환타입이 다를때 어떻게 될까를 궁금해했다.
결론은 안된다.
public int Method1() {
return 1;
}
public void Method1() {}
반환타입이 다르면 컴파일 에러가 난다.
결론
오버로딩은 매개변수에 따라서만 가능하다.
728x90
'개발 > Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring Security - OAuth2 (Google login) (0) | 2023.07.20 |
---|---|
[Spring Boot] Spring-REST-Docs로 자동으로 API 문서화 (0) | 2023.07.17 |
[Spring Boot] Mockito란? (1) | 2023.05.31 |
[Spring Boot] DI 구현 방법 3가지 (0) | 2023.05.26 |
[Spring Boot] dotenv(.env) 때문에 날려버린 2일 (0) | 2023.05.24 |