| 16 - Métodos abstractos. | 
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
abstract class Trabajador {
  protected $nombre;
  protected $sueldo;
  public function __construct($nom)
  {
    $this->nombre=$nom;
  }
  public function imprimir()
  {
    echo 'Nombre:'.$this->nombre.'<br>';
    echo 'Sueldo:'.$this->sueldo.'<br>';
  }
  public abstract function calcularSueldo();
}  
class Empleado extends Trabajador {
  protected $horasTrabajadas;
  protected $valorHora;
  public function __construct($nom,$horas,$valor)
  {
    parent::__construct($nom);
    $this->horasTrabajadas=$horas;
    $this->valorHora=$valor;
  }
  public function calcularSueldo()
  {
    $this->sueldo=$this->horasTrabajadas*$this->valorHora;
  }
}
class Gerente extends Trabajador {
  protected $utilidades;
  public function __construct($nom,$uti)
  {
    parent::__construct($nom);
    $this->utilidades=$uti;
  }
  public function calcularSueldo()
  {
    $this->sueldo=$this->utilidades*0.10;
  }
}
$empleado1=new Empleado('Pablo Rodriguez',150,3.50);
$empleado1->calcularSueldo();
echo 'El sueldo del empleado<br>';
$empleado1->imprimir();
$gerente1=new Gerente('Marcos Herning',1000000);
$gerente1->calcularSueldo();
echo 'El sueldo del gerente<br>';
$gerente1->imprimir();
?>
</body>
</html>Ejecutar ejemplo