728x90
반응형
SMALL
상속
객체지향 프로그래밍(OOP)에서는 유지보수가 편리하고, 프로그램을 수정하거나 새로운 기능을 추가하는 것이 유연하다. 이러한 특징을 가능하게 하는 핵심 기술 중 하나가 상속(Inheritance)이다.
상속이란 기존 클래스(A 클래스)의 속성과 메서드를 새로운 클래스(B 클래스)에서 물려받아 재사용하는 개념이다. 이를 통해 코드의 중복을 줄이고, 공통 기능을 한 곳에서 관리할 수 있어 유지보수성을 높일 수 있다. 또한, 부모 클래스의 기능을 확장하거나 재정의(오버라이딩)하여 유연하게 변경할 수도 있다.
- 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현한다.
- 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속한다.
- 상속받은 클래스는 상위 클래스의 멤버를 자신의 멤버처럼 사용할 수 있다.
상속하는 클래스 : 상위 클래스, parent class, base class, super class
상속받는 클래스 : 하위 클래스, child class, derived class, sub class
- 상속의 문법
class B extends A {
...
}
extends 키워드 뒤에는 단 하나의 클래스만 올 수 있다.
C++ 같은 경우는 여러 개가 올 수 있는데 이러면 모호성이 발생할 수 있기 때문에
자바는 단일 상속(single inheritance)만을 지원한다.
상속의 목적
☞ 클래스의 재사용성, 연관된 일련의 클래스들에 대한 공통적인 규약 정의.
상속을 구현하는 경우
- 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가진다.
- 하위 클래스는 상위 클래스보다 더 구체적인 개념과 기능을 가진다.
- 하위 클래스가 상위 클래스의 속성과 기능을 확장(extends)한다는 의미다.
상속의 장점
- 보다 적은 양의 코드로 새로운 클래스 작성가능
- 공통적으로 코드를 관리하므로 코드의 추가 및 변경 용이
- 중복된 코드를 제거하여 프로그램의 생산성과 유지보수에 큰 기여
상속의 특징
최상위 클래스는 Object
- 모든 클래스는 Object 클래스의 후손이다.
- Object 클래스가 제공하는 메서드를 오버라이딩하여 메서드 재구성 가능
- 예를 들어 java.lang.String 클래스의 equals()와 toString()
부모 클래스의 생성자, 초기화 블록은 상속 불가
- 자식 클래스 생성 시, 부모 클래스 생성자가 먼저 생성 됨
- 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶을 경우 super() 활용
부모의 private 멤버는 상속되지만 직접 접근 불가
- 자식 클래스 생성 시 부모 클래스의 멤버를 상속받는데 이때 부모 클래스에서 private으로 선언된 멤버는 직접 접근이 불가하다.
- super()를 사용하여 전달받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성하거나 getter / setter를 사용하여 접근해야 한다.
728x90
반응형
LIST
'Java' 카테고리의 다른 글
[JAVA] 자바 - 추상 클래스란? (0) | 2025.02.14 |
---|---|
[JAVA] 객체지향 프로그래밍의 4가지 특징 (OOP의 4가지 특징) (0) | 2025.02.14 |
[JAVA] Java의 특징과 장단점 (1) | 2025.01.23 |
[Java] JDK 17설치 및 환경변수 설정 (0) | 2023.11.06 |
[JAVA] 자바 - 자바에서 제공되는 자료구조 구현 클래스들 (0) | 2022.01.10 |