
✅ 상속 관계의 장점 - 기능 추가
상속 관계의 장점을 알아보기 위해, 다음 기능을 추가해보자.
- 모든 차량에 문열기(openDoor()) 기능을 추가해야 한다.
- 새로운 수소차(HydrogenCar)를 추가해야 한다.
- 수소차는 fillHydrogen() 기능을 통해 수소를 충전할 수 있다.
✏️ ex3.Car
package extends1.ex3;
public class Car {
public void move() {
System.out.println("차를 이동합니다.");
}
// 추가
public void openDoor() {
System.out.println("문을 엽니다.");
}
}
모든 차량에 문열기 기능을 추가할 때는 상위 부모인 Car에 openDoor() 기능을 추가하면 된다. 이렇게 하면 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)한 것을 알 수 있다.
'Back-end > Java' 카테고리의 다른 글
| [Java - 기본] super - 부모 참조 (1) | 2024.04.27 |
|---|---|
| [Java - 기본] 상속과 접근 제어 (0) | 2024.04.26 |
| [Java - 기본] 상속과 메모리 구조 (0) | 2024.04.23 |
| [Java - 기본] 상속 관계 (0) | 2024.04.23 |
| [Java - 기본] 상속 - 시작 (0) | 2024.04.23 |