Herança

A Herança em Orientação a Objetos permita que uma determinada classe herde definições de outras classes. Para utilizar este conceito em PHP, deve ser utilizada a palavra reservada extends. A Herança Múltipla, que permite que uma classe herde definições de mais de uma classe, não é disponibilizada no PHP.

A seguir é apresentado um exemplo de uma classe Funcionario que herda as definições da classe Pessoa.

<?php
require_once ("Pessoa.php");

class Funcionario extends Pessoa
{
    public $CodFuncionario;
    public $Salario;

    function Funcionario(){
        parent::Pessoa();
        echo "Chamando o método construtor de Funcionario..";
    }

    public function mostrarDados(){
        echo "</br> Subclasse Funcionario </br> ";
        echo "Cpf: ".$this->Cpf;
        echo "</br>";
        echo "Cód. Funcionário: ".$this->CodFuncionario;
    }
}
?>

Na classe Funcionario foram definidas duas propriedades, CodFuncionario e Salario, além do método mostrarDados e o método construtor (Funcionario). O método mostrarDados imprime o Cpf , propriedade definida na classe base (superclasse) e o Código do Funcionário, que é uma propriedade da classe Funcionario. No método construtor é usada a instrução parent::, que é utilizada para acessar definições (por exemplo, métodos e propriedades) da classe base (superclasse). Neste exemplo específico, a instrução parent::Pessoa() invoca o método construtor da classe Pessoa,

A instrução require_once ("Pessoa.php") requer/importa as definições da classe Pessoa, que estão em um arquivo “Pessoa.php” para que possam ser utilizadas. A instrução require_once só importa o arquivo solicitado se este já não tiver sido importado anteriormente.

Agora, é mostrado um script PHP que faz uso das definições anteriores da classe Pessoa e Funcionario.

<?php

$f1 = new Funcionario();
$f1->Cpf = "000-000-000-00";
$f1->CodFuncionario="010101";
x$f1->mostrarDados();
?>

No código mostrado, foi instanciado um objeto da classe Funcionário, logo em seguida foi definido um valor para propriedade Cpf, que pode ser acessada porque a classe Funcionario herda todas as definições de Pessoa e, por fim, foi invocado o método mostrarDados, definido na classe Funcionario.

results matching ""

    No results matching ""