반응형
개념정리
오버로딩과 오버라이딩
오버로딩(Overloading)
- 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우
- 같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있음.
예제 코드
출력
오버라이딩(Overriding)
- 상위 클래스의 메서드와 이름과 용례(signature)가 같은 함수를 하위 클래스에 재정의하여 사용하는 것
- 상속 관계에 있는 클래스 간에 같은 이름의 메서드를 정의
- 메서드의 이름, 매개변수, 반환형이 같을 경우 상속받은 메서드를사용
예제 코드
출력
오버로딩과 오버라이딩의 성립조건
구분 | 오버로딩 | 오버라이딩 |
메서드 이름 | 같음 | 같음 |
매개변수, 타입 | 다름 | 같음 |
리턴타입 | 상관없음 | 같음 |
오버로딩과 오버라이딩을 사용하는 이유
- 오버로딩과 오버라이딩은 클래스의 다형성을 지원하는 방법
- 오버로딩이 지원되지 않으면 매개변수의 타입이나 개수가 다른 메소드를 여러개 만들어줘야 하는 단점이 있음
- 자바에서는 메소드의 이름이 같고 매개변수를 다른 메소드를 만들어 다형성을 지원함
- 여기서 오버로딩은 리턴타입은 전혀 영향을 주지 않고, 매개변수의 타입과 개수에만 영향을 받음
- 오버라이딩은 상속받은 클래스의 메소드가 하위 클래스에서 충분한 기능을 제공하지 않거나, 부족할 때 상위 클래스로부터 상속받은 클래스를 재정의 하기 때문
반응형
'개발 하나둘셋 > Java & Spring' 카테고리의 다른 글
Spring boot에서 AWS S3 파일 업로드 하기 (0) | 2021.12.08 |
---|---|
[java] 메서드, 파라미터 이해하기 (0) | 2021.12.03 |
DI, IoC, Bean (0) | 2021.11.21 |
Spring Boot의 Model, Controller, Service, Repository (0) | 2021.11.16 |
JPA(Java Persistence API) 이해하기 (0) | 2021.11.16 |