728x90
반응형
상속을 사용하는 이유는 무엇일까?
💡 상속을 사용하는 이유
- 공통적인 부분을 가지고 있는 상위 클래스를 활용해 하위 클래스는 본인 고유의 상태와 행동을 정의하기 위함
- 코드의 확장성, 재사용성이 용이하고 중복된 코드를 상위 클래스로 빼기 때문에 코드가 간결해짐
- 결과적으로 유지보수가 쉬워짐
💡 이해를 돕기 위한 예시
여러분 예를들어 자동차, 기차, 선박, 항공기, 우주선 클래스를 정의한다고 가정해봅시다.
이들의 공통점은 운반의 수단이 된다는 것입니다.
그럼 이제 항공기와 열차를 각 각 클래스 별로 정의해봅시다.
✔️ 항공기
탑승인원, 짐의 무게, 승무원의 인원 등 👉 멤버 변수
탑승하는 메서드, 짐싣는 메서드, 승무원의 탑승 등 👉 멤버 메서드
✔️ 열차
탑승인원, 짐의 무게, 열차의 칸 수 등 👉 멤버 변수
탑승하는 메서드, 짐싣는 메서드, 열차의 칸수 설정하는 메서드 등 👉 멤버 메서드
위에 정의하자고 했던 것들의 공통점은 "탈 것" 이라는 점입니다.
그렇기 때문에 탑승인원이 있어야 하고 수하물이 있을 수 있습니다. 이 클래스들을 모두 독립적으로 정의하게 된다면 중복되는 메서드와 변수가 존재할 수밖에 없습니다.
👉 이 점을 상속의 근거로 클래스들의 공통되는 부분을 상위 클래스로 추상화하고, 이를 상속하면서 각각의 특징을 드러낼 수 있도록 파생 클래스를 정의할 수 있다.
728x90
반응형
'Programming > Java' 카테고리의 다른 글
[Java] if/else문, switch/case문의 성능 차이에 대해 (1) | 2022.01.02 |
---|---|
[Java] 왜 좋은 조건문을 작성해야 할까? (0) | 2022.01.02 |
[Java] 자료구조 - 우선순위 큐(Priority Queue) & 힙(heap) 이란 무엇인가? (0) | 2021.05.28 |
[Java] HashMap 키(key) / 값(value) 기준으로 정렬하는 방법 (0) | 2021.05.11 |
[Java] 현재 실행 중인 클래스/메서드 이름 추출하는 방법 (0) | 2021.05.10 |