Boa noite pessoal, não sei se o título condiz com o conteúdo, mas vamos lá. Estou desenvolvendo um pequeno programa nada convencional. Trata-se de um programa para administração de um cemitério. kkkk é eu sei mó doido né? Bom, o problema é que durante o desenvolvimento me surgiu uma dúvida e gostaria de tirá-la com vocês. O programa em questão tem tres classes: SepulturaComunitaria (que é a superClasse), SepulturaPerpetua (que é a subClasse e herda alguns atributos da superClasse) e a classe Pessoa (que recebe dentre outros atributos um objeto que pode ser SepulturaComunitaria ou SepulturaPerpetua). A minha dúvida é exatamente ai, qual melhor maneira para montar este construtor de forma que ele consiga distinguir qual tipo de Objeto se trata? Me falaram que dá para aplicar conceitos de polimorfismo, mas sinceramente não estou conseguindo enchergar isso, outros me disseram instance of e por ai vai. Eu usei construtores sobrecarregados como vcs podem ver pelo meu código abaixo. E então o que acham? Abaixo estão partes das classes que estou com dúvida para que vcs analisem blz?
public class Pessoa{
private String nome;
private char sexo;
private String filiacao;
private Date dataNascimento;
private Calendar dataFalecimento;
private SepulturaPerpetua sepulturaPerpetua;
private SepulturaComunitaria sepulturaComunitaria;
public Pessoa(String nome, char sexo, String filiacao, Date dataNascimento,
Calendar dataFalecimento, SepulturaComunitaria sepultura){
this.nome = nome;
this.sexo = sexo;
this.filiacao = filiacao;
this.dataNascimento = dataNascimento;
this.dataFalecimento = dataFalecimento;
this.sepulturaComunitaria = sepultura;
}
public Pessoa(String nome, char sexo, String filiacao, Date dataNascimento,
Calendar dataFalecimento, SepulturaPerpetua sepultura){
this.nome = nome;
this.sexo = sexo;
this.filiacao = filiacao;
this.dataNascimento = dataNascimento;
this.dataFalecimento = dataFalecimento;
this.sepulturaPerpetua = sepultura;
}
public class SepulturaComunitaria{
private int numero;
private char ala;
public SepulturaComunitaria(int numero, char ala){
this.numero = numero;
this.ala = ala;
}
}
public class SepulturaPerpetua extends SepulturaComunitaria{
private String cpf;
private String cliente;
private boolean aVista = false;
private boolean aPrazo = false;
private Vector<Parcelas> parcelas;
public SepulturaPerpetua(int numero, char ala, String cliente, String cpf){
super(numero, ala);
this.cpf = cpf;
this.cliente = cliente;
}
}
Desde já obrigado a todos!