Acredito que, ao invés de criar uma função igual para cada subclasse, uma coisa que poderia ser feita é criar uma variavel protected chamada $taxa e mudar o valor em cada classe, mantendo assim uma mesma função, exemplo:
class Conta {
protect $taxa = 0.05;
public function saca(float $valorASacar): void
{
$tarifaSaque = valorASacar * $taxa;
$valorSaque = valorASacar + $tarifaSaque;
if (valorSaque > this->saldo)
{
echo "saldo indisponível";
return;
}
$this->saldo -= $valorSaque;
}
}
class ContaPoupanca extends Conta
{
protect $taxa = 0.03;
}