클래스 형변환 실습
문제 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리터 들어있습니다.