인프런 커뮤니티 질문&답변

이정빈님의 프로필 이미지
이정빈

작성한 질문수

김영한의 실전 자바 - 기본편

다형성에서 클라이언트가 의미하는게 무엇인지 궁금합니다.

작성

·

191

0

 

다형성의 본질은

 

클라이언트를 변경하지 않고, 서버의 구현한 기능을 유연하게 변경할 수 있다라고 하셨는데

 

여기서 말하는 클라이언트는 결국 Car와 같이 기본이 되는 인터페이스를 의미하는건가요?

답변 1

0

안녕하세요. 이정빈님, 공식 서포터즈 David입니다.

Driver 클래스는 drive 메서드를 통해 car의 startEngine, pressAccelerator, offEngine을 호출합니다. 이 부분이 클라이언트(Driver)가 서버(Car 인터페이스를 구현한 구현체)의 기능을 호출하고 있는 것입니다. 따라서, Driver를 클라이언트로 보시면 됩니다.

class Driver {

  private Car car;

  public Driver(Car car) { this.car = car }

  drive() {

     car.startEngine();

     car.pressAccelerator();

     car.offEngine();

  }

}

Interface Car {

  startEngine();

  pressAccelerator();

  offEndine();

}

class Model3Car implements Car {

  startEngine() { 

    // 3초간 시동 버튼을 눌러야 한다.

  }

}

class Model5Car implements Car {

  startEngine() { 

    // 5초간 시동 버튼을 눌러야 한다.

  }

}

감사합니다.

이정빈님의 프로필 이미지
이정빈

작성한 질문수

질문하기