O metodo desse exercicio está saindo errado, não esta indo da maneira como eu imaginei (Netbeans)

Oi gente, então estou praticando POO e estou praticando essa questão desse exercicio aqui

Crie uma classe Calculadora. Esta classe deve implementar as operações básicas (soma, subtração, divisão
e multiplicação). Utilizando o conceito de herança crie uma classe chamada calculadora cientifica que
implementa os seguintes cálculos: raizQuadrada e a potencia. Dica utilize a classe Math do pacote
java.lang.

E fiz do meu jeito e até agora tava correndo tudo bem `import java.lang.Math;

public class Calculadora {

public int soma;
public int subtracao;
public double multiplicacao;
public double divisao;

public static int soma(int x, int y){
    return x + y;
}
public static int subtracao(int x, int y){
    return x - y;
}
public static double multiplicacao(int x, int y){
    return x * y;
}
public static double divisao(int x, int y){
    return x / y;
}

}`

public class Calculadorapii extends Calculadora {
    public static double raizQuadrada(int x){
        return Math.sqrt(x);       
    }
    public static double potencia(){
        Math.pow(4, 2);
        double resultado = 0;
        return resultado;
    }

Só que o que esta dando errado é a potência, não estou conseguindo fazer um metodo descente pra ela, quando eu vou colocar o codigo principal para executar o da classe, o resultado sai igual o da divisão ou nulo, alguém pode me guiar como eu faço uma potencia sem precisar colocar os numeros na classe Calculadoraapi? e sim igualar aos outros que eu construir e retornar o resultado correto? aqui esta a classe principal
Calculadora calculadora = new Calculadora();

int soma = calculadora.soma(2,5);
int subtracao = calculadora.subtracao(5, 2);
double multiplicacao = calculadora.multiplicacao(10, 5);
double divisao = calculadora.divisao(10, 5);
double raizquadrada = Calculadorapii.raizQuadrada(9);
//*double potencia = Calculadorapii.
System.out.println(soma);
System.out.println(subtracao);
System.out.println(multiplicacao);
System.out.println(divisao);
System.out.println(raizquadrada);
System.out.println(Calculadorapii.potencia());

Sobre a divisão:
Você implementou sua divisão assim:

public static double divisao(int x, int y){
    return x / y;          // divisão de int vai retornar um valor int
}

Em Java, toda divisão de números int, vai resultar em um valor int, então se você chamar meuObjetoCalculadora.divisao(5, 2), o resultado vai ser 2 e não 2.5.
Recomendo que altere todos os parâmetros das suas calculadoras para o tipo double ao invés de int.

Sobre a potenciação:
Da forma como você implementou o método potencia ele não recebe nenhum parâmetro e sempre retorna o mesmo valor:

public static double potencia() {
    Math.pow(4, 2);       // aqui está elevando 4 à 2 pra nada
    double resultado = 0;
    return resultado;     // e aqui está retornando 0
}

Pergunta: Se você está estudando POO e herança, porque os métodos são todos static?
Não deveria.

Nem pensei nisso, pra falar a verdade nem sei de onde surgiu o static, vou dar uma pesquisada, muito obrigado :slight_smile: