Olá pessoal, estou tentando implementar alguns exemplos de herança, até que me deparei com a seguintesdúvida:
1 - Não posso chamar o construtor de uma classe abstrata dentro de uma classe filha?
vejam meu código
// pacote de classe relacionado a pessoas
package PESSOA;
public abstract class Pai {
//atributos membro da classe
private String tratamento;
//construtor
public Pai(String tratamento){
setTratamento(tratamento);
}
// método de configuração
public void setTratamento(String tratamento){
this.tratamento=tratamento;
}
}
classe que herda de pai
// classe que herda de pai
package PESSOA;
import PESSOA.Pai;
public class Filho extends Pai{
private int num;
public Filho(int num){
//super(tratamento);
setInt(num);
}
public void setInt(int num){
this.num=num;
System.out.println(num);
}
}
vejam que na linha 11 (da classe filha) se eu tirar o comentário tenho o seguinte problema
Filho.java:11: tratamento has private access in PESSOA.Pai
ok, se trata de um atributo privado de pai, porém no construtor pai eu pedi para utilizar o método público setTratamento
se eu comentar o super (como no código) tenho o seguinte erro
pessoa\Filho.java:10: cannot find symbol symbol : constructor Pai() location: class PESSOA.Pai".
Agora minha lógica (que talvez esteja equivocada):
Eu crio as variáveis privadas na classe abstrata e crio um método construtor para ser chamado nas classes filhas utilizando os métodos de configuração (setters).
Será esse meu erro (lógica) ou é erro de sintese da linguagem que eu estou cometendo?
Grato pela atenção dispensada
Thiago
