1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Herança reescrita de método declaração de váriaveis

Bom dia minha situação é a seguinte

Classe Pessoa {

public class Pessoa {  
    private String nome;  
    private int idade;  
    private String cpf;  
    private String endereco;  

    Pessoa (String nome, String cpf){  
    this.nome = nome;  
    this.cpf = cpf;  
    }  

//Outras propriedades da classe ocultadas   

    public String exibe() {   
        String a = "Bem vindo "+this.getNome()+" Seu CPF é o "+this.getCpf();  
        return a;  
    }  

}

Classe PessoaFisica

public class PessoaFisica extends Pessoa {  
    private String rg;  
    PessoaFisica(String nome, String rg) {  
        super(nome, rg);  
        this.rg = rg;  

    }  
    public String exibe() {   
        String a = "Bem vindo "+this.getNome()+" Seu rg é o "+this.getRg();  
        return a;  
    }  
    private String getRg() {  
        return this.rg;  
    }  


}

e classe Pessoa Juridica

public class PessoaJuridica extends Pessoa {  
    private String cnpj;  
    PessoaJuridica(String nome, String cnpj) {  
        super(nome, cnpj);  
        this.cnpj = cnpj;  
    }  
    public String exibe() {   
        String a = "Bem vindo "+this.getNome()+" Seu CNPJ é o "+this.getCnpj();  
        return a;  
    }  
    public String getCnpj(){  
        return this.cnpj;  
    }  



}

1º - Gostaria de saber nesse caso se a melhor forma de trabalhar com o RG e o Cnpj seria declarando essas váriaveis dentro das extensões mesmo ou se seria melhor usar na própria classe Pessoa normal.

2º - O métodos EXIBE por ser string e alterar os getters utilizados tem que ser re-escrito da maneira que eu fiz, sei que da pra chamar o métodos original pelo super.nomedometodo() mas no exemplo que tive ele apenas adiciona um valor a uma conta efetuada, nesse caso por ser String fiquei em dúvida.

3º - Por que ao invocar o constructor Super da classe Pessoa o RG e o CNPJ são passados como parametro.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jar herança polimorfismo eclipse ou faça a sua própria pergunta.