JAVA/포스팅

자바 상속의 정의

짜집퍼박사(짜박) 2023. 11. 10. 23:39

자바에서 "상속(Inheritance)"은 객체 지향 프로그래밍(OOP)의 기본 개념 중 하나로, 클래스가 다른 클래스의 특성(멤버 변수 및 메서드)을 재사용하고 확장하는 메커니즘을 의미합니다. 상속은 클래스 간의 일반화 및 특수화 관계를 나타내며 코드의 재사용성, 계층 구조 형성, 다형성 등을 가능하게 합니다.

 

1. 슈퍼클래스(부모 클래스)와 서브클래스(자식 클래스)

상속은 두 개의 클래스 간의 관계를 정의합니다. 슈퍼클래스(부모 클래스)는 특성을 제공하고, 서브클래스(자식 클래스)는 슈퍼클래스의 특성을 상속받아 확장합니다.

 

2. 상속의 효과

- 코드 재사용성 : 슈퍼클래스의 멤버 변수와 메서드를 서브클래스에서 재사용할 수 있습니다.
- 계층 구조 : 클래스 간에 계층 구조를 형성하며, 상속 관계를 통해 다양한 레벨의 클래스를 정의할 수 있습니다.
- 다형성(Polymorphism) : 상속을 통해 슈퍼클래스의 참조 변수로 서브클래스의 객체를 다룰 수 있습니다.
- 확장성 : 새로운 기능을 추가하거나 기존 기능을 수정하여 클래스를 확장할 수 있습니다.

 

3. extends 키워드

자바에서 클래스가 다른 클래스를 상속받을 때 extends 키워드를 사용합니다. 예를 들어, class Subclass extends Superclass와 같은 형태로 상속 관계를 정의합니다.

 

4. 메서드 오버라이딩(Override)

서브클래스는 슈퍼클래스의 메서드를 재정의하여 자신의 동작을 정의할 수 있습니다. 이를 메서드 오버라이딩이라고 합니다.

 

5. super 키워드

서브클래스에서 슈퍼클래스의 멤버를 참조할 때 super 키워드를 사용합니다. 이를 통해 슈퍼클래스의 생성자 호출, 슈퍼클래스의 메서드 호출 등이 가능합니다.

 

6. 단일 상속

자바는 단일 상속만 허용합니다. 즉, 하나의 클래스는 오직 하나의 슈퍼클래스를 상속받을 수 있습니다. 이는 클래스 간의 명확한 계층 구조를 유지하기 위한 제약 조건입니다.

 

7. Object 클래스

모든 클래스는 자동으로 Object 클래스를 상속받습니다. 따라서 모든 클래스는 Object 클래스의 메서드를 상속받고 오버라이딩할 수 있습니다.

상속은 객체 지향 프로그래밍의 핵심 원칙 중 하나이며, 코드의 재사용성과 유지보수성을 향상시키는데 중요한 역할을 합니다. 서브클래스가 슈퍼클래스의 특성을 상속받아 확장하고 수정함으로써 새로운 클래스를 정의하고 다양한 객체를 모델링할 수 있습니다.

 

With ChatGPT