본문 바로가기

프로그래밍언어/Java

[Java 기본] 상속과 기능 추가

상속과 기능 추가


예제를 통해 상속의 장점에 대해 알아보자. 

이전 포스팅의 코드를 리팩토링 할 것이므로 아래 게시글 참고

 

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();
        
    }
}

 

=> 상속 관계를 사용함으로써, 중복은 줄어들고 확장은 편리해졌다. 

 

 

 

* 인프런 '김영한의 실전 자바 - 기본편'을 참고하여 작성하였습니다.