Programming/Java

상속 (Inheritance)

Data Engineer 2015. 6. 22. 00:00

상속의 정의


기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것

Why?

  • 재사용성
  • 코드 중복 제거
  • 생산성 및 유지 보수 용이

자바의 상속

자바에서는 상속받고자 하는 클래스의 이름을 extends 키워드를 사용하여 상속을 수행한다.

class Super {}
class Sub extends Super {}

상속 관계를 그림으로 표현하면 아래의 Figure 1과 같다.


Figure 1. 상속 관계도

단일 상속 (Single inheritance)

자바에서는 단일 상속만 허용한다. C++에서는 이와 다르게 다중 상속(Multiple inheritance)를 허용하지만 자바에서는 단일 상속만을 허용하는 이유는 다음과 같다.

  • 클래스 간의 관계가 복잡해짐
  • 서로 다른 두개의 클래스로부터 상속을 받은 멤버간의 이름이 같은 경우 구별하기 어려움 (C++에서는 이 문제를 다른 방식으로 허용)
  • 클래스 간의 관계가 보다 명확해짐