No exemplo que colocaram no exerxico abaixo tem uma divergencia, conforme a variavel $valor ~e protected nao precisaria de acessala via metodo na filha, e sim diretamente pelo this->variavel correto?
function saca($valor) {
$this->getSaldo() -= $valor;
}
Para fazer com que a classe ContaPoupanca não lance um erro, é preciso implementar o método saca, já que como esse o método é abstrato, todas as classes filhas são obrigadas a tê-lo implementado:
function saca($valor) {
$this->saldo -= $valor;
}