일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 큐
- DP
- 디바이스 입출력
- error
- integretion test
- stack
- 파이썬
- 코딩 테스트
- springboot
- OS
- 유니크 키
- 프로세스
- BFS
- 객체지향 프로그래밍
- 논리 메모리
- SW Expert Academy
- queue
- OOP
- unionfind
- Python
- 캡슐화
- 스택
- 다익스트라
- 백준
- java
- 백준 #
- 자료구조
- DFS
- 데드락
- 운영체제
- Today
- Total
middlefitting
Java 메서드 오버라이딩에 관하여 본문
메서드 오버로딩이란
메서드 오버라이딩이란 상위 클래스에서 이미 정의된 메서드를 하위 클래스에서 다시 정의하는 것을 말합니다. 하위 클래스는 상위 클래스보다 많은 멤버를 가지게 되고, 이러한 특성은 자연스럽게 메서드 오버라이딩이 필요한 여러 상황을 만들게 됩니다. 메서드 오버라이딩을 통해 하위 클래스는 상위 클래스의 메서드를 재사용하면서 자신만의 새로운 기능을 추가할 수 있습니다.
메서드 오버라이딩의 목적
메서드 오버라이딩의 목적을 좀 더 자세히 살펴보면 다형성 구현, 유지보수성 향상, 확장성 확보가 존재합니다. 하나씩 살펴보면 다음과 같습니다.
다형성 구현
하위클래스는 상위 클래스의 메서드를 재정의함으로써 하위 클래스 동작 방식을 다양화할 수 있습니다.
유지보수성 향상
부모클래스의 메서드가 변경되는 것은 자식 클래스의 메서드가 변경되는 것보다 당연히 많은 영향을 끼치게 됩니다. 메서드 오버라이딩을 통해 코드변경의 영향을 제한하며 유지보수성을 향상시킬 수 있습니다.
확장성 확보
하위 클래스는 상위 클래스의 기능을 변경하거나 자신만의 새로운 기능을 추가할 수 있습니다. 이처럼 메서드 오버라이딩을 통해 하위 클래스는 상위 클래스의 기능을 확장할 수 있습니다.
메서드 오버라이딩 제약조건
이처럼 유용한 메서드 오버라이딩을 사용하기 위해서는 중요한 제약이 있습니다. 첫째는 메서드 선언부가 조상의 클래스의 메서드와 일치해야 한다는 것입니다. 메서드 선언부에 포함되는 내용에는 반환값, 메서드 이름, 매개변수 목록이 존재합니다. 둘째는 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다는 점입니다. 마지막은 조상 클래스의 메서드에 선언된 예외보다 많은 예외를 선언할 수 없다는 것입니다.
오버로딩 vs 오버라이딩
자바를 공부하다 보면 오버로딩, 오버라이딩이라는 단어가 헷갈릴 수 있습니다. 뭔가 비슷한 단어라서 연관이 있는것과 싶은 생각이 들 수도 있습니다. 둘은 전혀 관계없는 내용이기 때문에 구분을 잘 해두셔야 합니다. 메서드 오버라이딩은 상속받은 메서드의 내용을 재정의하는 것, 오버로딩은 기존에 없는 새로운 메서드를 정의하는 내용입니다.
'JAVA' 카테고리의 다른 글
세 가지 의미로 알아보는 JVM (0) | 2024.06.09 |
---|---|
getter, setter 그리고 캡슐화 (2) | 2023.05.02 |
[OOP] Java 추상화 이해하기 (0) | 2023.02.23 |
[OOP] 다형성이란 무엇일까 (0) | 2023.02.21 |
[OOP] Java 상속에 관하여 (0) | 2023.02.20 |