상속과 기능 추가
예제를 통해 상속의 장점에 대해 알아보자.
이전 포스팅의 코드를 리팩토링 할 것이므로 아래 게시글 참고
2024.07.15 - [Java] - [Java 기본] 상속
예제
1. 모든 차량에 문열기(openDoor()) 기능 추가
2. 새로운 수소차(HydrogenCar) 추가
수소차는 fillHydrogenCar 기능을 통해 수소를 충전한다.
Car.java
public class Car {
public void move(){
System.out.println("차를 이동합니다. ");
}
// 추가
public void openDoor() {
System.out.println("문을 엽니다. ");
}
}
=> 모든 차량에 문열기 기능이 추가되는 것이므로 부모클래스에 openDoor() 기능을 추가하면 된다. Car의 자식들은 해당 기능을 모두 물려받게 된다.
HydrogenCar.java
public class HydrogenCar extends Car{
public void fillHydrogen() {
System.out.println("수소를 충전합니다. ");
}
}
=> 새로 추가된 수소차는 모든 기능을 구현할 필요 없이, Car클래스를 상속받아서 사용할 수 있다. 수소차 전용 기능인 수소 충전 기능만 따로 구현하면 된다 .
CarMain.java
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();
}
}
=> 상속 관계를 사용함으로써, 중복은 줄어들고 확장은 편리해졌다.
* 인프런 '김영한의 실전 자바 - 기본편'을 참고하여 작성하였습니다.
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java 기본] 상속과 접근 제어 (0) | 2024.07.16 |
---|---|
[Java 기본] 상속과 메서드 오버라이딩 (0) | 2024.07.15 |
[Java 기본] 상속과 메모리 구조 (0) | 2024.07.15 |
[Java 기본] 상속 (0) | 2024.07.15 |
[Java 기본] final 변수와 상수 (0) | 2024.07.12 |