상속의 정의 및 구현
상속은 객체지향의 4개 개념인 A P.I.E 중 I (Inheritance) 에 해당한다.
▶ A P.I.E : 추상화(Abstraction), 다형성(Polymorphism), 상속(Inheritance), 캡슐화(Encapsulation)
■ 자바 프로그래밍에서의 상속
기존 클래스의 멤버 변수 및 메서드를 다른 클래스에서 재사용 할 수 있게 받아서 쓰는 것.
상속을 활용하면 코드의 절감 효과를 가져올 수 있고, 유지보수성이 향상된다.
■ 부모 클래스 ( 조상 클래스, 상위 클래스, 슈퍼 클래스, 공통 클래스 등으로 부른다. )
상속의 관계에 있어 물려주는 쪽의 클래스
■ 자식 클래스 ( 자손 클래스, 하위 클래스, 서브 클래스 등으로 부른다. )
상속의 관계에 있어 부모 클래스의 멤버 변수 및 메서드를 받는 쪽의 클래스
UML로 상속의 관계를 표현할 땐 실선의 화살표를 이용한다.
▶ UML (Unified Modeling Language) : 통합 모델링 언어
단, 화살표 방향이 '자식 → 부모'쪽으로 향해있음을 주의.
영문 표현이므로 부모가 자식에게 물려주는 방향이 아닌 자식이 부모에게 물려 받는다는 시각으로 바라본다.
상속의 관계 : 'is ~ a' 관계
- 자식 is a 부모 ( 자식이 부모의 모든 멤버를 가지고 있기 때문에 문법이 성립 )
■ 상속 프로그램 코드
class 자식클래스명 extends 부모클래스명 {
}
- '자식 → 부모'순으로 표기함에 주의한다. ( 화살표 방향 주의 )
■ 단일 상속
여러개의 자식 클래스가 하나의 부모 클래스의 멤버를 상속받을 수 있다.
■ 다중 상속 (X)
하나의 자식 클래스가 여러개의 부모 클래스로부터 멤버를 상속받는 행위. Java에서는 사용하지 않는다.