PHP: Heranças

PHP: Heranças

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