클래스 상속 개념을 이해하고 하위 클래스를 정의하는 방법을 터득하며 abstract class, interface, 클래스 위임을 통해 복잡한 클래스 계층 구조를 설계하는 방법에 대해서 알아봅니다. 그리고 강력한 스마트 캐스팅을 사용할 수 있는 타입 검사를 가능하게 해주는 대수적 데이터 타입(Alegebraic Data Type, ADT)인 Sealed class에 대해서도 알아봅니다. 상속 객체지향 언어에서 상속은 도메인 개념에 있는 is-a 관계를 표현합니다. is-a는 사람은 동물이고, 자동차는 이동수단과 같은 개념을 의미합니다. 여기서 동물과 이동수단은 상위 클래스(superclass), 기반클래스(base class)라고 부르며 사람과 자동차는 하위 클래스(subclass), 파생클래스(deri..