학습 목표
- 상속과 인터페이스의 용도의 차이점을 알 수 있다.
상속
- 추상클래스를 설명할 수 있다.
- 추상화에 대해 설명할 수 있다.
인터페이스
상속
- 상속과 조합의 차이 알아보기
- extends 인데 상속이라고 부르는 이유 : 자바 공식문서에서 찾아보기
- 추상화를 잘 할수록 넓은 범위에서 사용 가능하며 구체화를 잘 할수록 특정 상황에 맞는 클래스를 설계할 수 있음
- 추상화와 구체화의 차이 알아보기
- 추상화 -> 외연을 넓힌다(CaffeinBeverage는 Tea, Coffee에 모두 해당할 수 있다.)
- 구체화 -> 내연을 넓힌다(Coffe에 있는 것은 Tea에 있는 것에 해당하지 않는다)
인터페이스
- 인터페이스 : 100% 추상화
- 추상클래스 : 일부 추상화
- 인터페이스에서 공통적으로 사용해야하는 기능이 있는데 이걸 추상화해놓으면 내부에 있는 모든 구현체 객체들에 다 구현해야하니 최상위 인터페이스에 default
- 사용하고 싶은 기능만 사용할 수 있도록????
- 커뮤니케이션 비용 낮추기용
- 인터페이스 : 현재 상황에 맞춰 구현 후
클라이언트
에서 사용
- 추상클래스 : 공통 기능을 가지고 있는 것들을
내부에서 기능 확장
하도록 사용