Um desenvolvedor compilará e executará o programa Java apresentado.
class C1 {
void metodo() {
System.out.println("C1");
}
}
class C2 extends C1 {
void metodo() {
super.metodo();
System.out.println("C2");
}
}
class C3 {
void metodo() {
System.out.println("C3");
}
void invocaMetodo(C1 c){
c.metodo();
}
}
class C4 extends C2{
void metodoDedicadoC4(){
System.out.println("C4");
}
}
public class Principal {
public static void main (String Args[]) {
C3 c3 = new C3();
C1 c1 = new C1();
c3.invocaMetodo(c1);
c1 = new C2();
c3.invocaMetodo(c1);
c1 = new C4();
c1.metodo();
}
}
Qual será o resultado obtido?