Olá pessoal,
Tenho um vetor de objetos de Pessoa, em que PessoaFisica e PessoaJuridica herdam de Pessoa.
O problema: quando instancio um objeto do tipo PF ou PJ neste vetor de Pessoas, não consigo acessar seus métodos. O compilador diz que não consegue encontrar o método especificado. Suspeito que o compilador não consiga interpretar em tempo de compilação que há um objeto do tipo PessoaFísica dentro daquela posição, mas como resolver isso?
O exemplo abaixo exemplifica o que eu quero dizer:
// Classe Pessoa
public class Pessoa{
String nome;
public Pessoa(){
}
public Pessoa(String nome){
this.nome = nome;
}
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
}
// Classe Pessoa Fisica
public class PF extends Pessoa{
private String cpf;
public PF(){
}
public PF(String nome, String cpf){
super(nome);
this.cpf = cpf;
}
public String getCpf(){
return cpf;
}
public void setCpf(String cpf){
this.cpf = cpf;
}
}
// Main
public class Main{
public static void main(String[] args){
Pessoa p[] = new Pessoa[5];
p[0] = new PF("Victor", "[telefone removido]");
p[0].getCpf(); // Erro aqui: cannot find symbol method getCpf
}
}