[인프런 Java] 다형성 - 역할과 구현 예제1

코드 속의 "진돌"·2024년 3월 28일
0
post-thumbnail

✅ 다형성 - 역할과 구현 예제1


앞서 설명한 내용을 더 깊이있게 이해하기 위해, 간단한 운전자와 자동차의 관계를 개발해보자.
먼저 다형성을 사용하지 않고, 역할과 구현을 분리하지 않고 단순하게 개발해보자.

DriverK3Car를 운전하는 프로그램이다.



✏️ K3Car

package poly.car0;

public class K3Car {

  public void startEngine() {
    System.out.println("K3Car.startEngine");
  }

  public void offEngine() {
    System.out.println("K3Car.offEngine");
  }

  public void pressAccelerator() {
    System.out.println("K3Car.pressAccelerator");
  }
}



✏️ Driver

package poly.car0;

public class Driver {

  private K3Car k3Car;

  public void setK3Car(K3Car k3Car) {
    this.k3Car = k3Car;
  }

  public void drive() {
    System.out.println("자동차를 운전합니다.");
    k3Car.startEngine();
    k3Car.pressAccelerator();
    k3Car.offEngine();
  }
}



✏️ CarMain0

package poly.car0;

public class CarMain0 {

  public static void main(String[] args) {
    Driver driver = new Driver();
    K3Car k3Car = new K3Car();

    driver.setK3Car(k3Car);
    driver.drive();
  }
}
  • DriverK3Car를 먼저 생성한다. 그리고 driver.setK3Car(...)를 통해 driver에게 k3Car의 참조를 넘겨준다.
  • driver.driver()를 호출한다.



🖥️ 실행 결과



⚙️ 메모리 그림


출처 : 김영한의 실전 자바 - 기본편
https://www.inflearn.com/course/김영한의-실전-자바-기본편/dashboard

profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글