Olá pessoal, esta me pegou!
Montei um exemplo para ficar mais facil de explicar.
Tenho duas classes Pai e Filha, na classe Pai eu tenho alguns métodos abstratos. Esses métodos são chamados da Pai, mas devem rodar o conteúdo definido na Filha.
Na classe Filha eu tenho um atributo, e um desses métodos que está sobrescrevendo a assinatura abstract joga um valor para este atributo.
Segundo os meus testes esse valor que ele joga, não é realmente jogado neste atributo da Filha (aliás eu nem sei onde é jogado).
Se eu tento acessar esse atributo através de outro método que também esteja sobrescrevendo um abstrato, o atributo não retorna o valor esperado.
Sendo assim, gostaria de saber como acessar um atributo de uma classe Filha, através de um método que está sobrescrevendo nela um método abstract da Pai (e principalmente que todos os métodos semelhantes enxerguem o mesmo valor para o atributo).
public abstract class Pai extends javax.swing.JFrame {
public Pai() {
iniciar();
carregarTexto();
}
public void iniciar() {
javax.swing.JButton btn01 = new javax.swing.JButton("Teste");
btn01.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
gerarMensagem();
}
});
getContentPane().add(btn01);
pack();
setVisible(true);
}
public abstract void carregarTexto();
public abstract void gerarMensagem();
}
public class Filha extends Pai {
private String texto = null;
@Override
public void gerarMensagem() {
javax.swing.JOptionPane.showMessageDialog(null, "O texto da mensagem:" + texto);
}
@Override
public void carregarTexto() {
texto = "por favor leia o texto";
javax.swing.JOptionPane.showMessageDialog(null, "Carregou: " + texto);
}
}
Quando clico no botão ao invés de aparecer para o atributo "texto" o valor: "por favor leia o texto", aparece "null" como se ele não estivesse carregado.
Mas vocês podem ver que o método carregarTexto() rodou sim.
Desde já agradeço,
Marcos Antonio Campos Jordão''