티스토리 뷰
오버라이딩 (Overriding)
Overriding?
상위 클래스(부모 클래스)의 메소드와 동일한 시그니처의 메소드를 하위 클래스(자식 클래스)에서 구현한 것을 얘기한다. 이렇게 다양한 메서드가 있을 때 실제 생성된 객체에 구현된 메소드를 호출한다.
- 오버라이딩 조건
- 오버라이딩하는 메서드를 가진 클래스와 상속 혹은 구현관계에 있어야 한다.
- 메서드의 시그니처와 리턴타입을 가져야 한다.
- 부모클래스의 메서드와 접근제어자는 다를 수 있지만, 접근 제어자의 범위가 확장되어야 한다.
Why?
타입(Type)은 표현할 수 있는 방법이라고 할 수 있다. 예를 들어 개와 인간과 같은 포유류 들은 젖샘이 있어 수유를 한다는 공톰점을 공유한다. 또한 개와 인간은 모두 걷는다 하지만, 개는 네 발로 걷고 우리는 두 발로 걷는다. 이와 같이 같은 행동을 수행 하면서도 그 방법과 방식은 조금씩 다를 수 있다. 이러한 조그마한 차이들을 구체적으로 표현하기 위해 필요한 것이 오버라이딩이다.
예시
오버로딩(Overloading)
Overloading?
같은 이름의 메서드가, 같은 클래스에 매개 변수의 타입 혹은 순서가 다른 형태로 여러개 존재하는 것을 의미한다.
- 오버로딩의 조건
- 같은 클래스에 위치한 메소드의 이름이 같다.
- 메소드의 매개 변수의 타입과 그 순서, 개수가 다르다.
Why?
같은 개념의 기능을 제공하는 메서드가, 조금씩 그 내부 구현이 달라질 때 같은 이름을 제공하여 해당 메서드를 사용하는 클라이언트에게 통일한 인터페이스를 제공하여 사용을 편리하게한다.
예시
'BackEnd > Java&Kotilin' 카테고리의 다른 글
[Java] 다이나믹 프록시 (Dynamic Proxy) (0) | 2022.07.29 |
---|---|
JVM(Java Virtual Machine) 이란? (0) | 2022.07.26 |
다형성 (Polymorphism) 이란? (0) | 2022.07.21 |
[Java] Map과 HashMap, Multimap, TreeMap 은? (0) | 2022.07.18 |
[Java] 멀티 스레드에서 생길 수 있는 문제들 (0) | 2022.07.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 외부 단편화
- 컴포짓 패턴
- 정적 타입 언어
- Object Pool
- pass by reference
- 장애 해결기
- RestAssured
- 메모리 단편화
- SpringBoot 2.2
- Sticky Session
- 메모리 파편화
- Clean Architecture
- multimap
- 동적 디스패치
- 수직 분할
- pass by value
- OOP
- 객체 풀
- 동적 타입 언어
- 클린 아키텍처
- 수평 분할
- Memory Fragmentation
- 내부 단편화
- ATDD
- pool
- Session
- 세션 불일치
- 육각형 아키텍처
- 뾰족함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함