Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
A grandes rasgos, el termino herencia significa que una o varias clases pueden derivar de una clase
base o 'padre'. Una clase que hereda de otra se llama subclase. Esta hereda todas los atributos y
métodos de la clase 'padre'. Y además añade sus propias características (atributos y métodos). Por
eso se suele decir que una subclase extiende a la clase base.
El concepto de herencia es el mismo que en el mundo real: hijos heredan características de los
padres. Por lo que una subclase tendrá a su disposición todas los atributos y métodos de la clase
base. Pero esta última (clase base) no podrá utilizar ninguna de las características que extiendan
las clases herederas.
Principales ventajas
1. Si se aplica bien el concepto de herencia conseguiremos una reutilización eficiente del código de
la clase base. Ya que estemos utilizando el mismo código en las dos clases, padre e hijo, pero solo
lo habremos escrito una vez.
3. La herencia es transitiva. Esto significa que una clase puede heredar características de la clase
base que se encuentra niveles más arriba en la jerarquía de herencia. Por ejemplo, si la clase
Cuatrimoto es una subclase de la clase Moto, y la clase Moto es una subclase de la clase Vehículo,
entonces el Cuatrimoto heredará atributos tanto de Moto como de Vehículo.
<?php
class Vehiculo {
//Atributos
public $motor = false; // motor encendido o apagado
public $marca;
public $color;
//Metodos
public function estado()
{
}
?>
Adicionaremos métodos básicos para la clase Vehículo y su instancia correspondiente
<?php
class Vehiculo {
//Atributos
public $motor; // motor encendido o apagado
public $marca;
public $color;
//Metodos
public function estado()
{
if ( $this->motor == true )
return "El motor esta encendido<br>";
else
return "El motor esta apagado<br>";
} // cierre de la clase
// instancia de la clase
$vehiculo = new Vehiculo();
echo $vehiculo->estado(); // Al instanciar la clase el motor está apagado
echo $vehiculo->encender(); // Se procede con el encendido
echo $vehiculo->estado();// Y el motor cambia de estado a encendido
?>
A continuación, crearemos una clase Moto que heredará todos los atributos y métodos de la clase
Vehículo. Esto lo conseguiremos mediante la sentencia extends.
<?php
class Moto extends Vehiculo {
} // cierre de la clase
?>
En esta clase adicionalmente podremos crear nuevos métodos que estarán disponibles para la
clase Moto y para sus clases herederas, pero que No estarán disponibles para su clase padre
Vehículo.
<?php
class Moto extends Vehiculo {
<?php
class Vehiculo {
//Atributos
public $motor; // motor encendido o apagado
public $marca;
public $color;
//Metodos
public function estado()
{
if ( $this->motor == true )
return "El motor esta encendido<br>";
else
return "El motor esta apagado<br>";
}
} // cierre de la clase
?>