Fala galera, blz??
to tendo uns problemas com classes abstratas, fiz uma classe abstrata com uns metodos q queria implementar em outra classe que extendesse da classe abstrata, mas qdo compilei a classe q extende da classe abstrata, ocorre o seguinte erro:
ClasseFilho should be declarede abstract;
it does not define metodo(java.lang.Object) in ClassePai
public class ClasseFilho extends ClassePai {
^
alguém faz idéia de onde eu estou errando??
desde jah agradeço…
isto ai quer dizer que você não implementou todos os metodos abstratos da classe pai, então ou você declara esta classe também como abstrata, ou implementa todos os metodos abstratos da classe pai 
O erro diz que o método “metodo()” não foi implementado na classe filho… a classe PRECISA fazer isso para que possa estender corretamente a classe Pai 
galera,
então esse “metodo” se chama na verdade selecionar na classe pai, e foi implementado dessa maneira:
public abstract Object selecionar (Object passagem);
e na classe filho eu estou, por enquanto, implementando assim:
public Passagem selecionar (Passagem passagem) {
return null;
}
mas naum sei no q eu to errando!!! :lol:
O erro esta no tipo de retorno. O metodo abstract vc declarou como retornando um Object, mas na classe filha ele retorna Passagem. Deve retornar Object . Alias, ate o paraemtro tem que ser do tipo Object tmb.
Se quiser que retorne Passagem, implemente, com corpo vazio, a versao que retorna Object, e faca overload pra retornar Passagem
Rafael
kra eu naum entendi direito como eu faço esse overload, pq minha dúvida eh q eu naum sei q tipo de objeto eu vou usar, por exemplo, agora eu to usando o objeto Passagem, mas se eu quiser mudar o objeto pra Bilhete, tenho q mudar em todas as classes, naum sei se vc me entendeu, mas minha dúvida eh essa, naum sei q tipo de dado vou usar!!! :lol:
mas desde jah agradeço as ajudas… 
overload eh a acao de vc o mesmo nome para um metodo, mas com parametros diferentes. Por exemplo,
public void soma(int a, int b) {}
veja que recebemos 2 parametros do tipo int. Se vc quiesse fazer soma com float, poderia fazer
public void soma(float a, float b) {}
viu? somes iguais, parametros diferentes. Overload eh muito importante vc entender, pois faz parte basica da orientacao a objetos.
No teu caso ( problema com abstract ), ja que vc nao sabe qual vai ser o tipo, vc tem 2 saidas:
-
Simplesmente nao declare o metodo “selecionar” na classe pai;
-
Faca overload:
// Implemente com corpo vazio, apenas pq na classe pai esta como "abstract"
public Object selecionar (Object passagem) {}
// Faca overload agora
public Passagem selecionar(Passagem passagem) { // .... }
Rafael