자바에서 "상속(Inheritance)"은 객체 지향 프로그래밍(OOP)의 기본 개념 중 하나로, 클래스가 다른 클래스의 특성(멤버 변수 및 메서드)을 재사용하고 확장하는 메커니즘을 의미합니다. 상속은 클래스 간의 일반화 및 특수화 관계를 나타내며 코드의 재사용성, 계층 구조 형성, 다형성 등을 가능하게 합니다.
1. 슈퍼클래스(부모 클래스)와 서브클래스(자식 클래스)
상속은 두 개의 클래스 간의 관계를 정의합니다. 슈퍼클래스(부모 클래스)는 특성을 제공하고, 서브클래스(자식 클래스)는 슈퍼클래스의 특성을 상속받아 확장합니다.
2. 상속의 효과
- 코드 재사용성 : 슈퍼클래스의 멤버 변수와 메서드를 서브클래스에서 재사용할 수 있습니다.
- 계층 구조 : 클래스 간에 계층 구조를 형성하며, 상속 관계를 통해 다양한 레벨의 클래스를 정의할 수 있습니다.
- 다형성(Polymorphism) : 상속을 통해 슈퍼클래스의 참조 변수로 서브클래스의 객체를 다룰 수 있습니다.
- 확장성 : 새로운 기능을 추가하거나 기존 기능을 수정하여 클래스를 확장할 수 있습니다.
3. extends 키워드
자바에서 클래스가 다른 클래스를 상속받을 때 extends 키워드를 사용합니다. 예를 들어, class Subclass extends Superclass와 같은 형태로 상속 관계를 정의합니다.
4. 메서드 오버라이딩(Override)
서브클래스는 슈퍼클래스의 메서드를 재정의하여 자신의 동작을 정의할 수 있습니다. 이를 메서드 오버라이딩이라고 합니다.
5. super 키워드
서브클래스에서 슈퍼클래스의 멤버를 참조할 때 super 키워드를 사용합니다. 이를 통해 슈퍼클래스의 생성자 호출, 슈퍼클래스의 메서드 호출 등이 가능합니다.
6. 단일 상속
자바는 단일 상속만 허용합니다. 즉, 하나의 클래스는 오직 하나의 슈퍼클래스를 상속받을 수 있습니다. 이는 클래스 간의 명확한 계층 구조를 유지하기 위한 제약 조건입니다.
7. Object 클래스
모든 클래스는 자동으로 Object 클래스를 상속받습니다. 따라서 모든 클래스는 Object 클래스의 메서드를 상속받고 오버라이딩할 수 있습니다.
상속은 객체 지향 프로그래밍의 핵심 원칙 중 하나이며, 코드의 재사용성과 유지보수성을 향상시키는데 중요한 역할을 합니다. 서브클래스가 슈퍼클래스의 특성을 상속받아 확장하고 수정함으로써 새로운 클래스를 정의하고 다양한 객체를 모델링할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 상속 클래스간의 관계 (0) | 2023.11.10 |
---|---|
자바 상속의 장점 (0) | 2023.11.10 |
자바 더블 블럭 초기화 (Double-Brace Initialization) (0) | 2023.11.09 |
자바 정적 초기화 블럭 (Static Initialization Block) (0) | 2023.11.09 |
자바 인스턴스 초기화 블럭 (Instance Initialization Block) (0) | 2023.11.09 |