Herança+Overwrite de Metodos

3 respostas
M

eae Pessoal ble?
Estou enfrentando o seguinte problema:

criei uma classe abstrata AbstractVo, vazia:

public abstract class AbstractVo { }

depois, fiz uma outra classe abstrata, AbstractDao:

pulbic class abstract AbstractDao { public abstract int inserir(AbstractVo Vo); ... }

bom, então estendi a Classe AbstractVo:

public class ClienteVo extends AbstractVo { public int getCodigo() {...} }

mas quando eu tento sobrescrever o método inserir, usando a classe ClienteVo, ele não deixa, diz que não a classe ClienteDao não é abstrata e não sobrescreveu o método inserir:

public class ClienteDao extends AbstractDao { public int inserir(ClienteVo Vo) {...} }

se eu substituir por AbstractVo quando vou sobrescrever o metodo inserir, funfa legal, mas não é isso q eu quero!!

obrigado pessoal!!

3 Respostas

O

Esse erro é pra acontecer mesmo.
Vc tem que herdar o método abstrato inserir, com a mesma assinatura q ele possui.

public class ClienteDao extends AbstractDao {

public int inserir(ClienteVo Vo) {}

^

}

^ = Veja q ClienteVo é uma herança da classe abstratra AbstractVo, mas ClienteVo não é uma classe abstrata.
Ou vc torna a classe ClienteVo abstrata ou arruma outra solução.

M

hummm…

será q se eu tornar a classe AbstractVo “não abstrata” funciona? vou tentar! vlw!!!

J

funciona sim
mais voce pode tambem criar os dois metodos
dexa esse q vc tinha criado. e depois sobreescreve o outro com o mesmo argumento
ai vc ta sobrecarregando e sobreescrevendo

Criado 24 de novembro de 2004
Ultima resposta 26 de nov. de 2004
Respostas 3
Participantes 3