Um dos conceitos fundamentais da Orientação a Objectos é a herança de classes. Isto permite que uma Classe estenda de uma outra, sendo que a Classe que herda, pode usar todos os atributos e métodos da Classe estendida, mas também podendo reescrever métodos existentes, ou criar novos métodos.
Tal como no artigos anterior sobre a Programação Orientada a Objectos, vou deixar vários exemplos de código, para que os possam usar para teste ou estudo.
<?php
class Conta{
public $saldo = 0;
function depositar($valor) {
}
function levantar() {
}
}
class ContaCorrente extends Conta {
function transferir($contaDestino, $valor){
$this->saldo -= $valor;
}
}
$novaConta = new ContaCorrente();
$novaConta->transferir('xxx-xxx', 500);
echo "Saldo: " . $novaConta->saldo;
?>
Adicionamos um novo método à classe ContaCorrente, onde nesta há uma referência ao atributo saldo da própria classe ContaCorrente que acedemos usando $this.
Esse atributo está disponível graças a herança, a classe ContaCorrente herda da classe Conta, todos os métodos e atributos lá definidos.
Sendo assim, o atributo saldo existe tanto em Conta quanto em ContaCorrente.
Sempre que estendermos qualquer outra conta, a partir da classe pai Conta, estas iram sempre ter acesso a esses atributos.
Para estendermos uma classe, basta utilizar o termo extends e seguir a sintaxe apresentada no exemplo.
É importante sabermos que o PHP não possui herança múltipla, ou seja, não é possível que uma classe filha estenda de dois pais diferentes, esta só pode possuir uma única herança, ou classe pai.
Para futuras referências, todos os código deste artigos, e futuros artigos, estarão disponíveis na minha conta de Github. Podem usar todo o código de forma totalmente gratuita, e para os fins que entenderem.
Mais desta série:
Continua a acompanhar a nossa série sobre PHP, com o artigo PHP: Programação Orientada a Objectos