Novo erro no livro da Kathy

9 respostas
Cris_Finholdt

No capítulo sobre tipos de retorno aparece o seguinte cógigo:

class Foo{
	void go(){		
	
                }
}

public class Bar extends Foo{
	String go(){              // sobrescrição válida em Java 1.5
	      return null;
	}
}

Coloquei o código no Eclipse, e como era de se esperar, deu erro de compilação, esse código não compila nem em 1.3, 1.4, 1.5, 1.6... nada, pois String não é um subtipo de void!!! Acho q o livro quis mostrar um retorno covariante como o seguinte:

class Foo{
	Object go(){   // substituí o void pelo Object
	      return null;	
	}
}

public class Bar extends Foo{
	String go(){              // sobrescrição válida em Java 1.5 pois String é um subtipo de Object
	      return null;
	}
}

Estou estou certa, ou o primeiro código realmente deveria compilar?

9 Respostas

T

De fato, o livro está errado, e isso foi anotado em uma errata que foi lançada posteriormente. Aqui no GUJ já foi comentado esse caso.

Djonatah

É verdade,
esse override não funciona nesse caso…

Pergutna - você está lendo o livro em portuguê?

Porque você iria achar muitos erros…

taaqui

http://www.guj.com.br/posts/list/87554.java

Cris_Finholdt

estou lendo em portugues sim…

Assim fica difícil estudar, pq a gente corre o risco de aprender coisa errada.

taaqui

Cris Finholdt:
estou lendo em portugues sim…

Assim fica difícil estudar, pq a gente corre o risco de aprender coisa errada.

Sempre corre esse risco, raramente existe um livro traduzido corretamente para nossa língua mãe, mais aconselho você a se guiar por livros em inglês, já que a maioria dos ótimos livros da nossa linguagem e de outras também não são traduzidos para nossa língua, se você tiver um curso de inglês na bagagem ou um inglês técnico já é suficiente para leitura da maioria dos livros ingleses, sobre o livro da kathy o 1.5 tem muitos erros aonde o tradutor pensou que era programador e saiu lançando códigos sem sentido algum, a 1.6 acabou de ser lançada no mercado então acredito que ira ter muitos erros ainda já que se encontra na primeira versão. Compre o livro em inglês e seja feliz, se não vai ter que ficar corrigindo sempre as burradas dos tradutores…

Lavieri

Bem vinda hehehe

estou estuando com a versão em portugues, com uma em ingles ao aberta 100% do tempo, ao minimo sinal de incoerencia vejo a versão americana, e tiro a prova dos 9 ^^

GabrielCardelli

Ta foda… comprei o livro e to perdendo bastante tempo corrigindo erros…

Marcio_Nogueira

Estudar para a prova por material traduzido e de baixa qualidade, compromete de forma significativa o entendimento dos conceitos cobrados em cada tópico.

Você pode baixar o material para estudo nosite: http://www.4shared.com
Pesquise por SCJP 6.0 (os arquivos estão todos em formato pdf).
Um abraço, boa sorte; :wink:

moacirjava
Me corrijam se estiver errado, mas mudar o tipo do retorno já não é sobrecarga de método?
class Foo{
	void go(){ }
}

public class Bar extends Foo{
	String go(){              // Pra isso aqui funcionar, teria que adicionar um argumento
	      return null;
	}
}
Se vc fizer
class Foo{
	void go(){	}
}

public class Bar extends Foo{
	void go(){  }
}

É válido. Isso é sobrescrever.

Criado 17 de abril de 2009
Ultima resposta 24 de abr. de 2009
Respostas 9
Participantes 8