Apesar do casting (que aliás é um casting explicito desnecessário neste caso), o objeto não deixa de ser uma instância de E. Logo, em tempo de execução, o método sobrecarregado escolhido é aquele que pertence à classe da instância real (E), e não à classe da referência (D).
F
feliperoliveira
Cara
D e = new E() (Alternativa D) e D e = (D)(new E()) (alternativa E) são a mesma coisa só que escrito de maneira diferente (O cast no primeiro caso foi implícito e no segundo foi explícito). Então você elimina a alternativa E pela mesma maneira que você elimina a alternativa D.
A F está correta porque em tempo de execução a jvm irá chamar o método da classe que realmente foi instanciada (este caso a classe E)
Você ficou confuso porque não sabia que essa linha de código não altera o objeto para o qual a referência está apontando, apesar de ocorrer um cast.
evertonsilvagomesjav
Putz galera o cast Explicito ali me pegou…Achei que ele iria mudar a referencia para um objeto D…vlw ai a todos.
I
info_god
Opa, a galera ja respondeu mas postei pra dar uma dica
“Toda vez que tiver em duvida sobre o resultado de uma questão, digite o codigo compile e execute para ver o resultado, faça sua implementação do problema para estudar e provavelmente implementando o problema de forma diferente vc jamais ira esquecelo”