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”.
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.