Olá,
Na videoaula, foi dado o seguinte exemplo:
Interface Automatico{}
class Veiculo{}
class Moto extends Veiculo{}
class Carro extends Veiculo{}
class CarroAutomatico extends Carro implements Automatico{}
class Teste{
public static void main(String…args){
CarroAutomatico ca = new CarroAutomatico();
Automatico a = ca; //compila
Carro c2 = ca; //compila
Automatico a2 = c2; //não compila
Automatico a3 = (Automatico)c2; //compila
}
}
No exercício 3, temos:
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) {
Y y = new D();
}
}
Por que no exercício 3 não ocorre o casting, considerando que no exemplo da aula foi atribuído um objeto a uma interface e compilou?