클래스 형변환 실습

    문제 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리터 들어있습니다.
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.