사진

서브클래싱과 서브타이핑

상속의 주된 용도

  • 타입계층 구현

  • 코드 재사용 - 강하게 결합 위험 높음.

타입계층 관점에서 부모클래스는 자식 클래스의 일반화 (generalization) 이고 자식 클래스는 부모 클래스의 특수화 (specialization) 이다.

1 타입

프로그래밍 언어 관점의 타입

객체지향 패러다임 관점의 타입

2 타입 계층

타입 사이의 포함관계

객체지향 프로그래밍과 타입 계층

3 서브클래싱과 서브타이핑

언제 상속을 사용해야 하는가?

is-a 관계

행동호환성

클라이언트의 기대에 따라 계층 분리하기

서브클래싱과 서브타이핑

4 리스코프 치환 원칙

클라이언트와 대체 가능성

is-a 관계 다시 살펴보기

리스코프 치환 원칙은 유연한 설계의 기반이다

타입 계층과 리스코프 치환 원칙

5 계약에 의한 설계와 서브타이핑

서브타입과 계약

Last updated