Herencia

Herencia

<?php
class Empleado extends Persona {
    public $cargo;

    public function __construct($nombre, $edad, $cargo) {
        parent::__construct($nombre, $edad);
        $this->cargo = $cargo;
    }

    public function presentar() {
        echo "Hola, soy {$this->nombre}, tengo {$this->edad} años y soy {$this->cargo}.\n";
    }
}

$empleado = new Empleado("Ana", 28, "Programadora");
$empleado->presentar(); // Imprime: Hola, soy Ana, tengo 28 años y soy Programadora.
?>
  • Los métodos privados del padre no los tendrá el hijo, dado que solo son accesibles desde la propia clase.
  • Los métodos protegidos los hereda el hijo, pero para usarlos, el hijo tiene que crear su propio método public y en este llamar al método padre
class Padre {
    protected function metodoProtected(){
        return "hello";
    }
}

class Hijo extends Padre {
    public function metodoDevolverPadre(){
      return parent::metodoProtected();
    }
}
$hijo = new Hijo();
$hijo->metodoProtected(); // error
echo $hijo->metodoDevolverPadre(); // hello