Como instanciar classe Inner Class de uma classe abstrata?

Durante a aula de Polimofirmo, desenvolvi meu código usando Inner Class, a classe Calculadora não pode ser instanciada e deve ser abstract.

Classe: Calculadora.java

public abstract class Calculadora {

    public class Soma extends Calculadora {

     
    }
    public class Subtracao extends Calculadora {

     
    }
}

Procurando na documentação, eu encontrei a seguinte solução:

Calculadora calc = new Calculadora().new Soma(); //erro

Porém isso não compila, talvez porque Calculadora seja abstract.
Finalmente, a solução foi usar static nas classes internas, da seguinte forma

Calculadora calculadora = new Calculadora.Init();
Por questões academicas, é possível criar uma instância da classe Soma sendo que Calculadora é abstract?

Obrigado

Essa linha está errada:

Calculadora calc = new Calculadora().new Soma(); //erro

Por que você dá new em calculadora.

O correto seria:

O “Calculadora.” antes do “Soma()” denota apenas o escopo.

Quando faço isso o erro, não compila, o erro é:

Vai funcionar só se eu colocar o método como static

É claro meu.

[code]public abstract class Calculadora {

public class Soma extends Calculadora {
	public String toString() { return "Eu sei somar."; }
}
public class Subtracao extends Calculadora {

 
}

}

class ScientificCalculator extends Calculadora {

}

class TestScientificCalculator {
public static void main(String[] args) {
ScientificCalculator sc = new ScientificCalculator();
Calculadora.Soma soma = sc.new Soma();
System.out.println(soma);
}
}[/code]

:smiley:

Ah sim, é verdade. Se ela não for estática, vai depender de uma instância de calculadora.

Nesse caso, ou você tem uma instância do filho, ou nada feito.