sábado, 12 de julio de 2025

05 Php POO Interfaces

 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.