상속을 통해 연결된다.구현 클래스가 추상 타입을 상속받는 방식으로 둘을 연결함LogCollector
+collect()
^
|
|
+-+-----------+-----------+
| | |
FtpLogFile Socket DbTable
Downloader LogReader LogGateway
FtpLogFileDownloader, SocketLogReader, DbTableLogGateway라는 구현 클래스들이 상속받는 구조추상 타입과 실제 구현 클래스를 연결하면, 다음과 같이 추상 타입을 사용해 코드를 작성이 가능하다.// createLogCollector()는 알맞은 구현 클래스의 객체를 생성
LogCollector collector = createLogCollector();
collector.collect();collector.collect() 코드의 경우 실제 collector 객체 타입의 collect() 메서드를 호출 가능함.
createLogCollector() 가 SocketLogReader 클래스의 객체를 생성한 경우, collector.collect() 의 경우 는 SocketLogReader 타입의 collect 메서드를 실행이 가능하다.LogCollector 인터페이스에 정의된 기능을 실제로 구현한다.콘크리트 클래스 라고 부른다고 함.구상 클래스 == 콘크리트 클래스 라고 보면됨…