Boa Tarde pessoal, estou com uma duvida e nao sei como resolver. Tenho tres classes onde uma eh abstrata e duas estendem dela. Eu estou fazendo o atributo codigo (cod) autoincrementar a cada crriaçao de uma instancia, mas so que eu gostaria q esses codigos fossem gerados para cada classe estendida e nesse momento todas as classes estao compartilhando esse autoincremento de codigo (oq eu nao quero).
public abstract class Pessoa {
protected int cod;
private static int incementoCod = 0;
public Pessoa() {
this.cod = ++incementoCod; }
public int getCod() {
return cod; }
}
public class PessoaFisica extends Pessoa {
public PessoaFisica() {
super(); }
}
public class PessoaJuridica extends Pessoa {
public PessoaJuridica() {
super(); }
}
public class TesteAtributo {
public static void main(String[] args) {
PessoaFisica pf1 = new PessoaFisica();
PessoaFisica pf2 = new PessoaFisica();
PessoaJuridica pj1 = new PessoaJuridica();
PessoaJuridica pj2 = new PessoaJuridica();
PessoaFisica pf3 = new PessoaFisica();
System.out.println(pf1.getCod());
System.out.println(pf2.getCod());
System.out.println(pj1.getCod());
System.out.println(pj2.getCod());
System.out.println(pf3.getCod());
}
}
O restultado eh: 1, 2, 3, 4, 5, todas as instancias estao compartilhando o mesmo atributo… e nesse caso gostaria, por exemplo, que como meu resultado com o codigo do main, a resposta fosse pessoaFisica: 1, 2, 3 e pessoaJuridica 1, 2, ou seja um atributo autoincrementado para cada TIPO de instancia criada.
Espero ter sido claro e agradeço a todos!!!