자바에서 상속이란 무엇인가요?
자바에서 상속(Inheritance)이란 기존에 작성된 클래스(부모 클래스, 슈퍼클래스)의 속성과 메서드(기능)를 새로운 클래스(자식 클래스, 서브클래스)가 물려받아 재사용할 수 있는 객체지향 프로그래밍의 핵심 개념입니다.
상속을 통해 코드의 재사용성을 높이고, 클래스 간의 계층적인 관계를 표현할 수 있습니다.
주요 특징 - 코드 재사용성 증가 : 부모 클래스에 정의된 필드와 메서드를 자식 클래스가 그대로 사용할 수 있어 중복 코드를 줄일 수 있습니다.
- 계층적 분류 : "is-a"(~은 ~이다) 관계를 표현하여 현실 세계의 객체 관계를 소프트웨어 구조에 반영할 수 있습니다.
- 확장과 수정 용이 : 부모 클래스를 바탕으로 필요한 기능만 추가하거나 변경하여 새로운 클래스를 쉽게 만들 수 있습니다.
자바에서 상속 사용법 - `extends` 키워드를 사용하여 자식 클래스가 부모 클래스를 상속받습니다.
- 자식 클래스는 부모 클래스의 `public`과 `protected` 멤버에 접근할 수 있지만, `private` 멤버는 직접 접근이 불가능합니다.
- 단일 상속만 지원하므로 한 클래스가 동시에 여러 클래스를 상속할 수 없습니다.
```java class Animal { void sound() { System.out.println("동물이 소리를 냅니다.
"); } } class Dog extends Animal { void sound() { System.out.println("멍멍"); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.sound(); // 출력: 멍멍 } } ``` 위 예시에서 `Dog` 클래스는 `Animal` 클래스를 상속받아 `sound()` 메서드를 오버라이딩(재정의)하여 구체적인 기능을 제공합니다.
결론 자바의 상속은 기존 클래스를 기반으로 새로운 클래스를 생성하여 코드의 중복을 줄이고, 객체 간의 자연스러운 관계를 설계하는 데 중요한 역할을 합니다.
이를 통해 유지보수성과 확장성이 높은 소프트웨어 개발이 가능합니다.