Ejercicio Herencia

Vamos a hacer unas clases para los productos de Ikea.

Primero tenemos una clase Producto genérico con la propiedad ‘nombre’ y ‘familia’ que se ponen en el constructor. Pongamos que son protected. Tendremos getter y setter mágicos.

De ahí vamos a derivar la clase ‘Asientos’ que incorpora la propiedad (protected) número de ‘patas’. Se pide en el constructor (junto con el nombre y la familia) y se llama al constructor padre.

De asientos derivamos la clase ‘Sillas’ y ‘Sillones’, sin nada especial.


class Producto {

protected $nombre;
protected $familia;

function __construct(String $nombre, String $familia) {
$this->nombre = $nombre;
$this->familia = $familia;
}

function __get($name) {
if (!property_exists($this, $name)) {
throw new Exception("La propiedad $name no existe");
}
return $this->$name;
}

function __set($name, $value) {
if (!property_exists($this, $name)) {
throw new Exception("La propiedad $name no existe");
}
$this->$name = $value;
}

}
class Asiento extends Producto{
protected $patas;
function __construct(String $nombre, String $familia, int $patas) {
parent::__construct($nombre, $familia);
$this->patas=$patas;
}
}
class Silla extends Asiento{

}
class Sillon extends Asiento{

}