[Java] 상속과 기능 추가

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

✅ 상속 관계의 장점 - 기능 추가


상속 관계의 장점을 알아보기 위해, 다음 기능을 추가해보자.

  • 모든 차량에 문열기(openDoor()) 기능을 추가해야 한다.
  • 새로운 수소차(HydrogenCar)를 추가해야 한다.
    • 수소차는 fillHydrogen() 기능을 통해 수소를 충전할 수 있다.



✏️ ex3.Car

package extends1.ex3;

public class Car {

  public void move() {
    System.out.println("차를 이동합니다.");
  }

  // 추가
  public void openDoor() {
    System.out.println("문을 엽니다.");
  }
}

모든 차량에 문열기 기능을 추가할 때는 상위 부모인 CaropenDoor() 기능을 추가하면 된다. 이렇게 하면 Car의 자식들은 해당 기능을 모두 물려받게 된다.



✏️ ex3.HydrogenCar

package extends1.ex3;

// 추가
public class HydrogenCar extends Car {
  
  public void fillHydrogen() {
    System.out.println("수소를 충전합니다.");
  }
}

수소차를 추가했다. Car를 상속받은 덕분에 move(), openDoor()와 같은 기능을 바로 사용할 수 있다.
수소차는 전용 기능인 수소 충전(fillHydrogen()) 기능을 제공한다.



✏️ ex3.CarMain

package extends1.ex3;

public class CarMain {

  public static void main(String[] args) {
    ElectricCar electricCar = new ElectricCar();
    electricCar.move();
    electricCar.charge();
    electricCar.openDoor();

    GasCar gasCar = new GasCar();
    gasCar.move();
    gasCar.fillUp();
    gasCar.openDoor();

    HydrogenCar hydrogenCar = new HydrogenCar();
    hydrogenCar.move();
    hydrogenCar.fillHydrogen();
    hydrogenCar.openDoor();
  }
}



🖥️ 실행 결과



📚 기능 추가와 클래스 확장

상속 관계 덕분에 중복은 줄어들고, 새로운 수소차를 편리하게 확장(extend)한 것을 알 수 있다.

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

0개의 댓글