Curso PHP orientado a objetos – Herencia

Curso PHP orientado a objetos – Herencia

A través de la herencia, una clase hija hereda de su padre los atributos y métodos, de manera que si por ejemplo tenemos una clase padre “Figura” con un atributo “área”, y dos clases hijas: “Rectángulo” y “Triángulo”.

Árbol de herencia

En PHP la palabra clave para definir la herencia es: “extend” y la forma en que se define es:

  • class Padre
  • class Hija extends Padre

El constructor y los atributos, “base” y “altura” están definidos en la clase “Figura”. El método “área” es propio de cada hija. Veamos la implementación y el resultado:

<?php

class Figura
{
	protected $base;
	protected $altura;

	function __construct($base, $altura)
	{
		$this->base = $base;
		$this->altura = $altura;
	}
}

class Rectangulo extends Figura
{
    function area(){
		return $this->base * $this->altura;
	}
}

class Triangulo extends Figura
{
    function area(){
		return $this->base * $this->altura /2;
	}
}

$rectangulo = new Rectangulo(2,2);
$triangulo = new Triangulo(2,2);

echo "<div>Para base = 2 y altura = 2:
		<ul>
			<li>Área para el rectángulo: "
 . $rectangulo->area() . ">/li>
			<li>Área para el triángulo: "
 . $triangulo->area() . "</li>
		</ul>
	</div>"
?>

Es importante destacar que:

  • No hemos creado un constructor ni para rectángulo ni para triángulo.
  • Los atributos también los ha heredado.
  • El intérprete ha sabido perfectamente cómo calcular el área para cada tipo de objeto, obteniendo los datos de unos atributos compartidos por la clase padre.

Imaginad la potencia de esta técnica en aplicaciones más complejas y la cantidad de tiempo y problemas que podemos llegar a ahorrar.