2.7.2 추상 클래스와 인터페이스의 의미
추상 클래스가 필요한 이유는 무엇이고, 어떤 프로그래밍 문제를 해결할 수 있을까?
- 상속을 통해 코드 재사용 목적을 달성할 수 있다는 점은 확실함 하지만 상속을 이해 상위 클래스가 굳이 추상 클래스일 필요는 없으므로, 추상 클래스를 사용하지 않아도 상속을 통한 재사용이가능하다
- 이러한 관점에서 추상 클래스는 불필요해보임 그렇다면 추상 클래스를 통해 코드 재사용 문제를 해결하는 것 외에 다른 의미가 있을까?
- 앞에서 살펴봤던 로그 출력 예제 코드로 돌아가보자. 다만 이번에는 Logger 클래스를 추상 클래스에서 일반 클래스로 바꾸고 log() 메서드와 doLog() 메서드 대신 isLoggalbe() 메서드가 추가되었다. FileLogger 클래스와 MessageQueueLogger 클래스는 여전히 Logger 클래스를 상속하고 있다.