1
resposta

Aula 4 - Exercício 3

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?

1 resposta

Fala Philippo, tudo bem?

no exercício 3 não ocorre o casting porque o código não compila. Alternativa correta: Não compila dentro do método main.