Fiz exatamente como está na aula, deixano o codigo aqui para saber qual a solução do problema.
<?php
namespace Alura\Banco\Modelo\Conta;
class ContaPoupanca extends Conta
{
public function sacar (float $valor): void
{
$tarifaSaque = $valor * 0.03;
$valorSaque = $valor + $tarifaSaque;
if ($valorSaque > $this->saldo){
echo "Saldo Indisponivel.";
return;
}
$this->saldo -= $valorSaque;
}
}
<?php
namespace Alura\Banco\Modelo\Conta;
class Conta
{
private Titular $titular;
private float $saldo;
private static $numeroContas = 0;
public function __construct (Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
self::$numeroContas++;
}
//Getters
public function getSaldo (): float
{
return $this->saldo;
}
public function getNomeTitular (): string
{
return $this->titular->getNome();
}
public static function getNumeroContas (): int
{
return self::$numeroContas;
}
//Depositar
public function depositar (float $valor): void
{
$this->saldo = $valor;
}
//Sacar
public function sacar (float $valor): void
{
$tarifaSaque = $valor * 0.03;
$valorSaque = $valor + $tarifaSaque;
if ($this->saldo < $valorSaque){
echo "Saldo Insuficiente.";
return;
}
$this->saldo -= $valorSaque;
}
//transferir
public function transferir (float $valor, Conta $contaDestino): void
{
if($this->saldo < $valor){
echo "Saldo Insuficiente.";
return;
}
$this->sacar($valor);
$contaDestino->depositar($valor);
}
}