Daniel Segovia

Blog personal

Archive for the ‘4.8 Herencia’ Category

Herencia en clases

Hacer un comentario

La herencia en el concepto de objetos es muy importante y consiste en crear una clase y que ésta herede los métodos y propiedades de otra clase.
Ahora bien, pensemos en que momento nos serviría tener los métodos y propiedades en diferentes clases sí al fin y al cabo solo voy a construir un objeto.
Es cierto que podría poner todos los métodos y propiedades dentro de 1 sola clase e instanciar ésta, pero lo más importante en herencia es la reutilización que podemos darle a las clases.
Imaginemos un auto, todos los vehículos tienen cosas en común, poseen ruedas, volantes, luces y también poseen muchas acciones en común como avanzar, frenar o doblar.
Todas éstas cosas en común pueden ir en una clase base y cuando nos topemos con vehículo que tenga determinadas particularidades como ser levanta vidrios electrónicos, stereo MP3 o Air Bug podemos crear un clase especial para éste tipo de vehículo y hacerla heredar de la clase base que ya tiene todos los problemas resueltos a lo que un vehículo se refiere.
La palabra reservada para hacer herencia de clases es extends

Veamos un ejemplo de una calculadora.
Crearemos una clase con las operaciones aritméticas básicas y luego crearemos una clase con operaciones más complejas que para resolverse usarán las operaciones básicas.

<?php
class Operaciones {
 
    public function suma($primero, $segundo){
	return $primero + $segundo;
    }
 
    public function resta($primero, $segundo){
	return $primero - $segundo;
    }
 
    public function division($primero, $segundo){
	return $primero / $segundo;
    }
 
    public function multiplicacion($primero, $segundo){
	return $primero * $segundo;
    }
}
 
$operaciones_basicas = new Operaciones;
 
echo $operaciones_basicas->suma(10,15);
echo "<br />";
echo $operaciones_basicas->resta(40,25);
echo "<br />";
echo $operaciones_basicas->division(30,5);
echo "<br />";
echo $operaciones_basicas->multiplicacion(8,7);
echo "<br />";
 
unset($operaciones_basicas);
 
/* Ahora crearemos una clase para realizar operaciones complejas */
 
class Operaciones_complejas extends Operaciones{
 
    function porcentaje($numero, $porcentaje){
	$parcial = $this->multiplicacion($numero, $porcentaje);
	$resultado = $this->division($parcial, 100);
	return $resultado;
    }
}
 
$operaciones_complejas = new Operaciones_complejas;
 
echo $operaciones_complejas->porcentaje(50,15);
echo "<br />";
?>

Written by Daniel Segovia

abril 13th, 2011 at 5:15 pm