Olá,
Eu peguei o exemplo abaixo, que é de outro aluno:
interface Z {}
interface W {}
interface Y extends Z, W {}
class B {}
class C extends B implements Y {}
class D extends B implements Z, W {}
class E extends C {}
class A {
public static void main(String[] args) {
B b = (B) new D();
D d = (D) new B();
// Estas conversões são possíveis?
}
}
No exemplo acima foi respondido que as conversões são possíveis.
Agora, o exemplo do exercício 2:
interface Z {}
interface W {}
interface Y extends Z, W {}
class B {}
class C extends B implements Y {}
class D extends B implements Z, W {}
class E extends C {}
class A {
public static void main(String[] args) {
C c = (C) new B();
}
}
Por que no exemplo do aluno foi respondido que D d = (D) new B();
pode ser convertido, mas, no exercício 2, a resposta é Compila e roda dando exception?