Pessoal estou montando uma atividade e fiz o sistema de contas só que usando herença.
Na minha classe super estar da seguinte forma:
package projetofinal.modelo;
/**
 * Conta
 */
public abstract class Conta {
    private int numeroConta;
    private double saldoConta;
    public Conta(int numeroConta) {
        this.numeroConta = numeroConta;
        this.saldoConta = 0;
    }
    public int getNumeroConta() {
        return numeroConta;
    }
    public double getSaldoConta() {
        return saldoConta;
    }
    public boolean depositar(double valor) {
        if (valor > 0) {
            saldoConta += valor; // saldo = saldo + valor;
            return true;
        }
        return false;
    }
    public boolean sacar(double valor) {
        if (valor > 0) {
            saldoConta -= valor;
            return true;
        }
        return false;
    }
    public boolean tranferir(Conta contaDestino, double valor) {
        if (this.getSaldoConta() >= valor) {
            this.sacar(valor);
            contaDestino.depositar(valor);
            return false;
        }
        return true;
    }
    @Override
    public String toString() {
        return numeroConta + " saldo: R$ " + saldoConta;
    }
}Eu tenho uma classe de gerenciamento dos metodos que vou usar no main:
package projetofinal.servico;
import java.util.ArrayList;
import projetofinal.modelo.Conta;
import projetofinal.modelo.ContaCorrente;
import projetofinal.modelo.ContaPoupança;
public class ServicoApp {
    private ArrayList<Conta> listaContas;
    public ServicoApp() {
        listaContas = new ArrayList<>();
    }
    public void menuEntrada() {
        System.out.println("1- Criar Conta Corrente");
        System.out.println("2- Criar Conta Poupança");
        System.out.println("3- Depositar");
        System.out.println("4- Sacar");
        System.out.println("5- Extrato/Saldo");
        System.out.println("6- Transferência");
        System.out.println("7- Encerrar Programa");
    }
    public String contaSaldo(int numeroConta) {
        for (Conta contas : listaContas) {
            if (contas.getNumeroConta() == numeroConta) {
                return contas.toString();
            }
        }
        return "Conta não encontrada";
    }
    public void novaContaCorrente(int numeroConta) {
        listaContas.add(new ContaCorrente(numeroConta));
    }
    public void novaContaPoupanca(int numeroConta) {
        listaContas.add(new ContaPoupança(numeroConta));
    }
    public boolean depositarConta(int numeroConta, double valorDeposito) {
        for (Conta conta : listaContas) {
            if (conta.getNumeroConta() == numeroConta) {
                return conta.depositar(valorDeposito);
            }
        }
        return false;
    }
    public boolean sacarConta(int numeroConta, double valorSaque) {
        for (Conta conta : listaContas) {
            if (conta.getNumeroConta() == numeroConta) {
                return conta.sacar(valorSaque);
            }
        }
        return false;
    }
    public void transfereConta(int contaOrigem, int contaDestino, double valor) {
        for (Conta conta : listaContas) {
        }
    }
}
O problema começa aqui , eu não estou entendo e conseguindo fazer o metodo de transferencia pra usar no meu main.Não estou conseguindo entender a parte o metodo que estar no super ,vou usar ele pra receber o numero da conta e fazer a transferencia, mais tudo no metodo da classe de gerenciamento.
Socorro
 
            