5. Interfaces.
Las interfaces son unas plantillas que obligan a los desarrolladores a implementar una estructura y unos métodos de forma obligatoria.
Permite una clase con funciones definidas, pero sin desarrollarla que obliga a todas las clases que lo implemente a tener estos métodos como mínimo.
Dentro de la clase que implemente las interfaces podemos definir los métodos que queramos, pero los definidos por las interfaces son obligatorios.
// Las interfaces obligan a implemetar unos metodos obligatoiramente en nuestras clases...
// Definimos una intergaz.
interface iPlantilla01{
// Tenemos que definir que métodos han de tener las clases obligatoriamente.
public function setNombre($name);
}
// Podemos extender desde otra interface.
interface iPlantilla02 extends iPlantilla01{
public function getNombre();
}
// CLASE PLANTILLA e implementamos la interfaz.
class Plantilla implements iPlantilla02{
// Inicialmente tenemos un error, la clase pPlantilla e iPlantilla02 contiene unos métodos abstractos...
// Hemos de implemetar los metodos de iPlantalla y desaparece el error.
// Hace obligatorio que se impleneten todos los métodos de las interfaces.
public function setNombre($name){
return "Mi nombre es: ".$name.".<br>";
}
// Método de la interface iPlantilla02, extendida.
public function getNombre(){
return "Método GetNombre sin parámetros...<br>";
}
} // Fin Clase Plantilla
// Instancio la clase Plantilla...
$ObjPlantilla= new Plantilla;
echo "* Clase Plantilla, Método setNombre Heredado de iPlantilla01<br>";
echo $ObjPlantilla->setNombre("Juan Manuel");
echo "* Clase Plantilla, Método getNombre Implementado de iPlantilla01<br>";
echo $ObjPlantilla->getNombre();
// HERENCIA MULTIPLE DE INTERFACES...
interface iPlantilla03{
public function iPlant01($edad);
}
interface iPlantilla04{
public function iPlant02();
}
interface iPlantilla05 extends iPlantilla03,iPlantilla04{
public function iPlant03();
}
class Plantilla02 implements iPlantilla05{
public function iPlant01($edad){ return "function iPlant01. Mi edad es: ".$edad.".<br>"; }
public function iPlant02(){ return "function iPlant02 sin parámetros <br>"; }
public function iPlant03(){ return "function iPlnat03 sin parámetros <br>"; }
} // Fin Class Plantilla02
// Instancio la clase Plantilla02...
$ObjPlantilla02 = new Plantilla02;
echo "* Plantilla02 implemets iPlantilla05, Heredadas interfaces multiples...<br>";
echo $ObjPlantilla02->iPlant01(59);
echo $ObjPlantilla02->iPlant02();
echo $ObjPlantilla02->iPlant03();
No hay comentarios:
Publicar un comentario
Gracias por vuestros aportes.