Collections/Generic para OCPJP 6

Estou com duvida na 10° linha do code…
Até a 9° linha compila com warning…

import java.util.*;  
class Vehicle {}  
class Car extends Vehicle {}  
class Bus extends Vehicle {}  
class TestSamp {  
    public static void main(String [] args) {  
    ArrayList<Car> a = new ArrayList<Car>();  
    a.add(new Car());  
    ArrayList b = a;  
    ArrayList<Bus> c = (ArrayList<Bus>)b;  
    c.add(new Bus());  
    for (Object obj : b)  
        System.out.println(obj);  
    }  
}  

A)compiler error
B)compiles with warning and gives some output
C)compiles without warning and gives some output
D)copiles and run with no output

porque esse b aqui

ArrayList<Bus> c = (ArrayList<Bus>b;

num seria

ArrayList<Bus> c = ArrayList<Bus>();

tenta ai

Diogo o b é a referencia onde ele esta fazendo o cast… devido ao codigo não estar entre as tags ele reconheceu como emotion…
Tenho duvidas sobre a resposta certa qual opção vc acha que é ?
Nas respostas do exam esta C) eu coloque B)

Obrigadão…