Dúvida Exercício Banco Java Iniciante

Olá, boa tarde. Iniciei recentemente os estudos em Java. Estou com dúvida em um exercício de banco. Com 1 classe abstrata Contas + 2 classes Conta Corrente e Conta Poupança e Classe Banco com método main. Consegui executar todos os métodos, menos o “Resgatar” que é para transferir valores da poupança para conta corrente.

package bancofuctura;

public abstract class Contas {
	
	public int numConta;
	private String titular;
	private double saldoContaCorrente;
	private double saldoContaPoupanca;
	
	public void DadosConta () {
		System.out.println ("------- Dados da Conta  ---------");
		System.out.println ("Número da conta : " + this.numConta);
		System.out.println ("Nome do Titular : " + this.titular);
		System.out.println("Saldo da Conta Corrente : " + this.saldoContaCorrente);
		System.out.println ("Saldo da Conta Poupança : " + this.saldoContaPoupanca);
	}

	public void Depositar (double valor) {
		System.out.println ("------- Realizando Depósito------- ");
		System.out.println ("Saldo Anterior : R$ " + this.saldoContaCorrente);
		this.saldoContaCorrente += valor;
		System.out.println ("Seu Saldo agora é : R$ " + this.saldoContaCorrente);
	}
	
	public String getTitular() {
		return titular;
	}

	public void setTitular(String titular) {
		this.titular = titular;
	}

	public double getSaldoContaCorrente() {
		return saldoContaCorrente;
	}

	public double getSaldoContaPoupanca() {
		return saldoContaPoupanca;
	}

	public void setSaldoContaPoupanca(double saldoContaPoupanca) {
		this.saldoContaPoupanca = saldoContaPoupanca;
	}

	public void setSaldoContaCorrente(double saldoContaCorrente) {
		this.saldoContaCorrente = saldoContaCorrente;
	}
}
package bancofuctura;

public class CCorrente extends Contas {
	
	public void Sacar (double valor) {
		System.out.println ("------- Realizando Saque------- ");
		System.out.println ("Saldo Anterior : R$ " + this.getSaldoContaCorrente());

		if (valor <= this.getSaldoContaCorrente()) {
			setSaldoContaCorrente(getSaldoContaCorrente() - valor);
    		System.out.println ("Seu Saldo agora é : R$ " + this.getSaldoContaCorrente());
		} else {
    		System.out.println("Saldo Insuficiente");
		}
	}

	public void Aplicar (double valor) {
		System.out.println ("------- Realizando Aplicação------- ");
		System.out.println ("Saldo Anterior na Conta Poupança : R$ " + this.getSaldoContaPoupanca());

		if (valor <= this.getSaldoContaCorrente()) {
			setSaldoContaPoupanca (getSaldoContaPoupanca ()+ valor);
			setSaldoContaCorrente (getSaldoContaCorrente ()- valor);
			System.out.println ("Saldo na Conta Poupança agora é de  : R$ " + this.getSaldoContaPoupanca());
		} else {
			System.out.println ("Saldo Insuficiente");
		}
	}
}
package bancofuctura;

public class CPoupanca extends Contas{

	public void resgatar (double valor) {
		System.out.println ("------- Realizando Regate ------- ");
		System.out.println ("Saldo Anterior na Conta Corrente é : R$ " + this.getSaldoContaCorrente());

		if (valor <= this.getSaldoContaCorrente()) {
			setSaldoContaCorrente(getSaldoContaCorrente() - valor);
			setSaldoContaPoupanca(getSaldoContaPoupanca()+ valor);
			System.out.println ("Seu Saldo na Conta Corrente agora é : R$ " + this.getSaldoContaCorrente());		
		} else {
			System.out.println ("Saldo Insuficiente");
		}
	}
}
package bancofuctura;

import java.util.Scanner;

public class Banco {

	
	public static void main(String[] args) {
		CCorrente cc = new CCorrente ();
		CPoupanca cp = new CPoupanca ();
		
		cc.numConta =0;
		cc.numConta=0;
		int depositoInici = 0;
		
        Scanner scan = new Scanner (System.in);
		System.out.println ("------ Bem vindo ao Banco Fuctura ------");
		System.out.println (" ** Vamos iniciar o cadastro de sua conta ** ");
		
        System.out.println ("Digite o seu nome");
		String nome = scan.nextLine();

		System.out.println ("Digite o número de sua conta : ");
		int numConta = scan.nextInt ();

		System.out.println ("Você gostaria de fazer um depósito inicial ? Digite 1 para -SIM- ou 2 para -NÃO-");
		int num1 = scan.nextInt ();

		if (num1 == 1) {
			System.out.println ("Digite o valor desejado para o primeiro depósito");
			depositoInici = scan.nextInt ();
		}

		if (num1 == 2) {
			System.out.println (" ");
		}
		
		System.out.println ("Obrigada, sua conta já foi cadastrada e seu Saldo Inicial é : R$ " + depositoInici);
		
		cc.setSaldoContaCorrente(depositoInici);
		cc.setTitular(nome);
		cp.setTitular(nome);
		cc.numConta = numConta;
		cp.numConta = numConta;
		
		int op;
		
		do {
		    System.out.println ("|*************************************************************************| ");
		    System.out.println ("| -----------------Bem vindo ao Banco Fuctura-----------------            |");                                
		    System.out.println ("| 1) Dados Bancários                                                      |" );
		    System.out.println ("| 2) Depósito                                                             |");
		    System.out.println ("| 3) Saque                                                                |");
		    System.out.println ("| 4) Aplicação na Conta Poupança                                          |");
		    System.out.println ("| 5) Resgatar - Transferir valores da Conta Poupança para Conta Corrente  |");
		    System.out.println ("| 6) Saldo Conta Corrente                                                 |");
		    System.out.println ("| 7) Saldo Conta Poupança                                                 |");
		    System.out.println ("| 0) Sair                                                                 |");
		    System.out.println ("|*************************************************************************| ");
		    System.out.println (" Digite o número correspondente a opção desejada");
	    
		    op = scan.nextInt ();
		    
		    if (op ==1) {
			    cc.DadosConta();	
		    }else if ( op==2) {
			    System.out.println ("Digite o valor do depósito: ");
			    double valor = scan.nextDouble();
			    cc.Depositar(valor);
		    }else if (op==3) {
			    System.out.println ("Digite o valor do saque: ");
			    double valor1 = scan.nextDouble();
			    cc.Sacar(valor1);
		    }else if (op==4) {
			    System.out.println ("Digite o valor desejado para aplicação na Conta Poupança: ");
			    double valor2 = scan.nextDouble();
			    cc.Aplicar(valor2);
		    }else if (op==5) {
			    System.out.println ("Digite o valor desejado para Resgatar: ");
			    double valor3 = scan.nextDouble();
			    cp.resgatar(valor3);
		    }else if (op==6) {
			    System.out.println ("R$" + cc.getSaldoContaCorrente());
		    }else if (op==7) {
			    System.out.println ("R$" + cc.getSaldoContaPoupanca());
		    }
		} while (op!=0);
		
    	scan.close();
    }
}