Não consigo pegar valor de um String da class "Pai"

Tenho um class pai que tem um textField que armazeno seu valor numa string qualquer (qualquer = texField.getText() )
em outra class estendida da estendida do pai quero pegar o valor dessa String pq não consigo? OBS: estou tentando
implementar o FACTORY METHOD… Estou fazendo um calculadora… e estou ainda trabalhando na forma de fazer as operações
esse da adição ta POGado + chegou a funcionar…Estou com muitas dificuldades em fazer… :?

//Essa e a Classe Principal…

[code]//Exemplo

public class Calculadora extends JFrame implements ActionListener {

JTextField textVisor;
String teste;

public Calculadora() {
//a Implementação de toda interface gráfica
// …

btnIgual.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            teste = textVisor.getText();
            Operacoes operacao = FabricaOperacoes.getOperacao("adicao");



}
    });

public static void main(String[] args) {
new Calculadora();

}[/code]

Essa e a Fabrica…

[code]public class FabricaOperacoes {

public static Operacoes getOperacao(String operacao) {
    
    if (operacao == null) {
        return null;
    } else if (operacao.equals("adicao")) {
        
        
        return new Adicao();
    } else {
        return null;
    }
}

}
[/code]

[code]public abstract class Operacoes extends Calculadora {

public double operacao() {
    System.out.println("Aqui");
    teste = textVisor.getText();
    return resultado;
}

}[/code]

Meu objetivo e obter o valor da String nessa classe

[code]public class Adicao extends Operacoes {

public Adicao() {


    System.out.println("entrou na adicao com o teste valendo " + teste);
    if (teste.contains("+")) {
        System.out.println("entrou no adicao" + teste);
        String[] resu = teste.split("\\+");
        for (int x = 0; x < resu.length; x++) // resu = a;
        {
            System.out.println("entrou no for");
            System.out.println("aqui a o resu: " + resu[x]);

            valor = Double.parseDouble(resu[x]);
            resultado += valor;
        }
        textVisor.setText(teste + " " + resultado);
    }



}[/code]

passe a string pelo construtor.

Proponho que você faça um algoritimo na mão mesmo, um esboço, depois fazer um rascunho numa folha de papel desenhando, de quem é a responsabilidade de cada parte.
Parece me que está confuso na sua mente os códigos. Por exemplo:

[quote][code]
public abstract class Operacoes extends Calculadora {

public double operacao() {  
    System.out.println("Aqui");  
    teste = textVisor.getText();  
    return resultado;  
}  

}
[/code][/quote]

Você pega o texto do visor com “teste = textVisor.getText()” e não faz nada com ele. E depois retorna outra variável que nem está declarada aparentemente.

Começando por aqui. Você deve aproveitar o construtor (método que é chamado sempre que uma classe é instanciada, ou seja, quando usamos o “new”) do Double, e converter o texto.
No seu caso ficaria assim:

public double operacao() {
    System.out.println("Passou por aqui: Classe: Operacoes | Método: operacao( )");
    String teste = textVisor.getText();
    Double valorTeste = null;
    if(!teste.isEmpty()){
        valorTeste = new Double(teste);
    } else {
        valorTest = Double.NaN;
    }
    return valorTest;

O código acima apenas analisa o código, e não a analise sintática. Pois no código acima vc diz que quem usar esse método vai fazer uma operação, mas ele não faz nada. :confused:

Esse seria o código que você estaria tentando confeccionar, eu acho:

char adicao = '+';
char subtracao = '-';
/**E os outros aqui...*/

public double operacao(char operacao, double x, double y) {
    switch(operacao){
        case('+'):
        return (x+y);
/**Daí continua...*/
}

Acho que já dá para ajudar com isso.