연습문제
- Car : drive()
- Ev : drive(), charge()
- Hybrid : drive(), charge(), addOil()
- Main : 임의의 자동차 10대 배열에 저장하기(33%확률로 랜덤 생성)
car이면 drive() 호출
Ev이면 charge() 호출
Hybrid이면 addOIl 호출
Car클래스 생성
public class Car { public void drive() { System.out.println("달린다."); } }
Ev클래스 생성
public class Ev extends Car { public void charge() { System.out.println("충전한다."); } }
Hybrid클래스 생성
public class Hybrid extends Ev { public void addOil() { System.out.println("기름을 넣는다."); } }
Main클래스 생성
public class Main { public static void main(String[] args) { Car[] cars = new Car[10]; for(int i = 0; i < cars.length; i++) { if(Math.random() < 0.33) { cars[i] = new Car(); } else if(Math.random() < 0.66) { cars[i] = new Ev(); } else { cars[i] = new Hybrid(); } } /* Car이면 drive() 호출 Ev이면 charge() 호출 Hybrid이면 addOil() 호출 */ for(int i = 0; i < cars.length; i++) { if(cars[i] instanceof Hybrid) { // 후손부터 먼저 체크한다. ((Hybrid) cars[i]).addOil(); } else if(cars[i] instanceof Ev) { ((Ev) cars[i]).charge(); } else if(cars[i] instanceof Car) { (cars[i]).drive(); } } } }
출력
충전한다.
달린다.
충전한다.
기름을 넣는다.
충전한다.
기름을 넣는다.
충전한다.
달린다.
충전한다.
기름을 넣는다.
- '충전한다, 달린다, 기름을 넣는다'가 랜덤으로 10개 생성된다.