객체 지향 프로그래밍 입문 - 최범균님의 인프런 강좌을 보고 작성하였습니다.
다형성(Polymorphism)
여러(poly) 모습(morph)을 갖는것
객체 지향에서는 한 객체가 여러 타입을 갖는 것
- 즉 한 객체가 여러 타입의 기능을 제공
- 타입 상속으로 다형성 구현
추상화(Abstraction)
데이터나 프로세스 등을 의미가 비슷한 개념이나 의미 있는 표현으로 정의하는 과정
두 가지 방식의 추상화
- 특정한 성질, 공통 성질(일반화)
타입 추상화
여러 구현 클래스를 대표하는 상위 타입 도출
- 흔히 인터페이스 타입으로 추상화
- 추상화 타입과 구현은 타입 상속으로 연결
추상 타입 사용에 따른 이점 : 유연함
추상화는 의존 대상이 변경하는 시점에
추상화 -> 추상 타입 증가 -> 복잡도 증가
- 아직 존재하지 않는 기능에 대한 이른 추상화는 주의
- 잘못된 추상화 가능성, 복잡도만증가
- 실제 변경, 확장이 발생할 때 추상화 시도
추상화를 잘 하려면
구현을 한 이유가 무엇 때문인지 생각해야 함