2. 다형성과 상속

다형성(Polymorphism) 은 한 객체가 여러 가지(poly) 모습(morph) 을 갖는다는 것을 의미한다. 여기서 모습이란 타입을 뜻하는데, 즉 다형성이란 한 객체가 여러 타입을 가질 수 있다는 것을 뜻한다.

3. 추상 타입과 유연함

추상화(abstraction) 는 데이터나 프로세스 등을 의미가 비슷한 개념이나 표현으로 정의하는 과정이다. 추상화된 타입은 오퍼레이션의 시그너처만 정의할 뿐 실제 구현을 제공하지는 못한다. 단지 의미만 제공할 뿐이다.

3.2 추상 타입을 이용한 구현 교체의 유연함

알고리즘이 바뀌거나 데이터를 읽고 쓰는 대상이 바뀌더라도 제어의 역할을 하는 상위 수준의 로직은 바뀌지 않고 재사용되므로, 재사용의 중요성으로 봤을 때 하위 수준의 상세 구현보다는 변하지 않는 상위 수준의 로직을 재사용할 수 있도록 설계하는 것이 더 중요하다.

3.3 변화되는 부분을 추상화하기