Duvida Casting

9 respostas
evertonsilvagomesjav

levando em consideraçao que B extends A quando eu faço:

public static void main(String[] args) {
		
A p0 = new A(); 
B p1 = new B();   

p1 = (B)p0; // B e instanciado implicitamente como se fosse p1 = new B()?

E curiosidade pra saber se é feito isso mesmo

9 Respostas

V

esse código gera um exceção…
porq p0 referencia uma instância de A…

troque a instrução

A p0 = new A();   

por

A p0 = new B();

ai o código funciona normalmente…

evertonsilvagomesjav

vmsb nao gera execeçao nao, o codigo que vc passou e exatamento o mesmo que eu passei, por isso to perguntando se esse casting faz uma instancia implicitamente

V

extamente…

V

troque a linha 3 do seu código

A p0 = new A();     
  
por   
  
A p0 = new B();
evertonsilvagomesjav

editado

V

hummm…
estranho…era pra gerar uma ClassCastException…
mas a respeito da sua dúvida
B e instanciado implicitamente como se fosse p1 = new B()

evertonsilvagomesjav

opaaaa Vmsb retira o que eu disse gera um ClassCastException sim…Você ta certo gera ClassCastException pq A não é um B é isso mesmo né.

V

é isso msm…

evertonsilvagomesjav

Vsmb brigadão cara \o/

Criado 7 de fevereiro de 2010
Ultima resposta 7 de fev. de 2010
Respostas 9
Participantes 2