더북(TheBook)

클래스 형변환 실습

문제 Car 클래스는 gas라는 필드를 가집니다. Car 클래스를 상속받은 Suv, Truck, Bus 클래스가 있습니다. GasStation 클래스에서는 fill(주유하다)이라는 메서드가 있습니다. 총 3종류의 fill 메서드가 오버로딩돼 있습니다. 각각 Suv, Truck, Bus의 객체를 매개변수로 받아서 주유하는 메서드인데요. Car, Suv, Truck, Bus 클래스를 한번씩 살펴보고 GasStation의 코드를 살펴본 다음 결과를 확인하세요.

package javaStudy;
public class Suv extends Car{
    public Suv(String name) {
        super.name = name;
    }
}
package javaStudy;
public class Truck extends Car{
    public Truck(String name) {
        super.name = name;
    }
}
package javaStudy;
public class Bus extends Car{
    public Bus(String name) {
        super.name = name;
    }
}
package javaStudy;
public class Car{
    public int gas;
    public String name;
}
package javaStudy;
public class GasStation{
    public static void main(String[]args) {
        GasStation gasStation = new GasStation(); // gasStation 인스턴스 생성
        Suv suv = new Suv("suv"); // suv 인스턴스 생성
        Truck truck = new Truck("Truck"); // truck 인스턴스 생성
        Bus bus = new Bus("Bus"); // bus 인스턴스 생성

        // gasStation에서 suv에 기름을 넣습니다.
        gasStation.fill(suv);

        // gasStation에서 truck에 기름을 넣습니다.
        gasStation.fill(truck);

        // gasStation에서 bus에 기름을 넣습니다.
        gasStation.fill(bus);
        
    }
    public void fill(Car car) {
        System.out.println(car.name+"에 기름을 넣습니다.");
        car.gas += 10;
        System.out.println("기름이 "+car.gas+"리터 들어있습니다.");
    }    
}

 

실행결과

suv에 기름을 넣습니다.
기름이 10리터 들어있습니다.
Truck에 기름을 넣습니다.
기름이 10리터 들어있습니다.
Bus에 기름을 넣습니다.
기름이 10리터 들어있습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.