Olá, pessoal. Baixei os arquivos do curso mas não está funcionando. Estou recebendo o seguinte erro:
Fatal error: Uncaught Error: Cannot instantiate abstract class Alura\Banco\Modelo\Conta\Conta in C:\xampp\htdocs\Alura\banco.php:12 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Alura\banco.php on line 12
Esse é o banco.php
<?php
require_once 'autoload.php';
use Alura\Banco\Modelo\Conta\Titular;
use Alura\Banco\Modelo\Endereco;
use Alura\Banco\Modelo\CPF;
use Alura\Banco\Modelo\Conta\Conta;
$endereco = new Endereco('Petrópolis', 'um bairro', 'minha rua', '71B');
$vinicius = new Titular(new CPF('123.456.789-10'), 'Vinicius Dias', $endereco);
$primeiraConta = new Conta($vinicius);
$primeiraConta->deposita(500);
$primeiraConta->saca(300); // isso é ok
echo $primeiraConta->recuperaNomeTitular() . PHP_EOL;
echo $primeiraConta->recuperaCpfTitular() . PHP_EOL;
echo $primeiraConta->recuperaSaldo() . PHP_EOL;
$patricia = new Titular(new CPF('698.549.548-10'), 'Patricia', $endereco);
$segundaConta = new Conta($patricia);
var_dump($segundaConta);
$outroEndereco = new Endereco('A', 'b', 'c', '1D');
$outra = new Conta(new Titular(new CPF('123.654.789-01'), 'Abcdefg', $outroEndereco));
unset($segundaConta);
echo Conta::recuperaNumeroDeContas();
Esse é o Conta.php
<?php
namespace Alura\Banco\Modelo\Conta;
abstract class Conta
{
private $titular;
protected $saldo;
private static $numeroDeContas = 0;
public function __construct(Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
self::$numeroDeContas++;
}
public function __destruct()
{
self::$numeroDeContas--;
}
public function saca(float $valorASacar): void
{
$tarifaSaque = $valorASacar * $this->percentualTarifa();
$valorSaque = $valorASacar + $tarifaSaque;
if ($valorSaque > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->saldo -= $valorSaque;
}
public function deposita(float $valorADepositar): void
{
if ($valorADepositar < 0) {
echo "Valor precisa ser positivo";
return;
}
$this->saldo += $valorADepositar;
}
public function recuperaSaldo(): float
{
return $this->saldo;
}
public function recuperaNomeTitular(): string
{
return $this->titular->recuperaNome();
}
public function recuperaCpfTitular(): string
{
return $this->titular->recuperaCpf();
}
public static function recuperaNumeroDeContas(): int
{
return self::$numeroDeContas;
}
abstract protected function percentualTarifa(): float;
}
Alguem consegue me ajudar?