[ Resolvido ] - Auxílio com herança

5 respostas
J

Boa tarde, tenho uma classe Cliente, e duas classes que filhas de cliente(PessoaFisica e PessoaJuridica).

Criei uma classe CadastroClientes que possui uma List de cientes, quero buscar um cliente no arraylist por cnpj, e o metodo getCnpj é da classe pessoaJuridica, e a list é de clientes…

public String buscarPorCnpj(String cnpj) {
		for (Cliente c : listaClientes) {
			if (c.getCnpj().equalsIgnoreCase(cnpj)) { //não funciona, pois o método é da pessoaJuridica e o tipo de c é cliente...
				return c;	                                     // com super não consegui...
			}
		} return null;
	}

]

Se puderem auxiliar agradeço.

5 Respostas

pedroroxd

Posta os gets e sets…

rogelgarcia
if (c instanceof PessoaJuridica && ((PessoaJuridica)c).getCnpj().equalsIgnoreCase(cnpj)) {
                return c;                                      
            }
rmendes08

Abstraia o CNPJ também, coloque na sua classe Cliente um método getCadastroReceitaFederal(). Na implementação da PJ você retorna o CNPJ, e na PF o CPF.

rogelgarcia

Isso siga a dica do rmendes08… o método getCadastroReceitaFederal() deve ser abstract…

J

Obrigado pelas respostas, mas eu até tava no caminho, mas eu tava errando nos parênteses na hora de fazer o cast do c, eu só não tava fazendo numa linha, com um if a mais, eu tinha feito um if pro instanceof PessoaJurídica e depois um (PessoaJurídica)c.getCnpj().equals(cnpj), não sabia que primeiro tinha que fazer o cas e depois comparar, achei que tudo junto funcionava, e por isso achei que não era com cast a resolução hehehehe…

Mas ontem a noite tive aula e foi corrigido e o prof° fez exatamente assim.

Grato a todos.

Criado 19 de março de 2010
Ultima resposta 20 de mar. de 2010
Respostas 5
Participantes 4