a - não compila
b - compila e lança runtime exception
c - roda e imprime Teste02, Base, Sub, MetodoSub, nada
d - roda e imprime Base, Sub, MetodoBase, nada
e - roda e imprime Teste02, Sub, Base, MetodoBase
f - roda e imprime Teste02, Base, Sub, MetodoBase
g - roda e imprime Teste02, Base, Sub, MetodoBase, nada
h - roda e imprime Teste02, Base, Sub, MetodoSub
class Base {
public Base() {
System.out.println("Base");
}
}
class Sub extends Base {
public Sub() {
System.out.println("Sub");
}
}
public class Teste02 {
boolean b;
final int i = 10;
public Teste02 () {
super();
System.out.println("Teste02");
}
public void metodo(Base b) {
System.out.println ("MetodoBase");
}
public void metodo(Sub s) {
System.out.println ("MetodoSub");
}
public boolean getB() {
return b;
}
public int getI() {
return i;
}
static public void main (String [] args) {
Teste02 t = new Teste02();
Base b = new Sub();
if (t.getB());
switch (t.getI()) {
case 10:
t.metodo(b);
default:
System.out.println ("nada");
}
}
}

