Exemplo de Casting - Kathy Sierra  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
GustavoLaguna
JavaTeenager
[Avatar]

Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline


Levando em consideração que Dog extends Animal e Animal não possui o método doDogStuff. Esse exemplo não geraria um erro?

No Livro está escrito que o código acima pode ser substituido por este


Fiquei na duvida, mas acho que no primeiro código ele vai procurar na classe Animal e ver que não existe o método portanto msm sendo um objeto Dog ele não vai compilar. Já no seundo ele faz o casting para Dog e dps usa o método.

Fico na espera da ajuda ae galera, abraço

OBS: Estou lendo no computador de arquivos puxados pela internet, são dois arquivos e os dois estavam iguais. Mas pode ocorrer de no livro estar diferente! Portanto, quem tiver o livro e puder verificar... seria de grande ajuda.

This message was edited 1 time. Last update was at 03/04/2008 14:10:45

BrunoCarlo
Virtual Machine Man

Membro desde: 25/11/2004 10:50:06
Mensagens: 633
Localização: Rio de Janeiro
Offline

Ola,

Se a classe Animal não tiver o metodo doDogStuff() o primeiro exemplo dará erro de compilação, na certa.

Evoluir é preciso

Sempre bom olhar-API
GustavoLaguna
JavaTeenager
[Avatar]

Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline

E o segundo não né? Hum... legal! Agora é só esperar para ver se alguém com o livro tira a dúvida se é erro do livro ou erro do meu arquivo!

Página 115!

This message was edited 1 time. Last update was at 03/04/2008 14:17:19

BrunoCarlo
Virtual Machine Man

Membro desde: 25/11/2004 10:50:06
Mensagens: 633
Localização: Rio de Janeiro
Offline

Ola


Dá uma olhada no site do livro... lá tem umas correções pós edição.

Evoluir é preciso

Sempre bom olhar-API
paribe
JWizard
[Avatar]

Membro desde: 22/08/2004 07:34:33
Mensagens: 2057
Offline

Olá ,

fiz o exemplo e precisa fazer o CAST para ver o metodo da classe Dog

pois a referencia do Animal não deixa ver o metodo do Dog.


[code]


public class Animal {


}

//


public class Dog extends Animal {
void doDogStuff(){
System.out.println("Dog");
}
}

//


public class DogTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal a = new Dog();
Dog d = (Dog) a;
((Dog) a).doDogStuff();

}

}
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

qual a sua edicao? se for a edicao 1, realmente está com erro.. mais na edicao 2 que saiu correcoes.. agora se a superclass nao tem o metodo realmente nao tem como compilar ja que tem a regra: "o filho faz no minimo tudo que o pai faz, se o pai tem esse metodo o filho tb nao"

flw!

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline

esse erro foi de digitação mesmo...



na verdade ele queria dizer:



o exemplo de cast, agora a variável d chama o método.. e tudo certo....apenas isso ok..

SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
GustavoLaguna
JavaTeenager
[Avatar]

Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline

Valeu!
paribe
JWizard
[Avatar]

Membro desde: 22/08/2004 07:34:33
Mensagens: 2057
Offline

Uma duvida por que ????

Exception in thread "main" java.lang.ClassCastException: certificacao.licão_5_1.Animal
at certificacao.licão_5_1.Dog.main(Dog.java:1

BrunoCarlo
Virtual Machine Man

Membro desde: 25/11/2004 10:50:06
Mensagens: 633
Localização: Rio de Janeiro
Offline

Opa.. vamos com muita calma..


Errado, pense assim... Dog é um animal mais alguma coisa... agora, não se pode, de forma alguma fazer:

Evoluir é preciso

Sempre bom olhar-API
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline



existe uma regra, o tipo de referência tem que ser igual ou pai, NUNCA filho....

poderia ser


entendeu... nunca uma referência filho pode apontar pra um ojbeto pai... somente o contrário ok...

SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team