Entonces, ¿qué es Polimorfismo?
En sí la palabra solo refiere a “muchas formas” y aplicado a la POO es la capacidad de poder tomar varias clases que tiene operaciones iguales y poder invocar a cualquier instancia el mismo método común.
Ventajas: Poder hacer un diseño genérico que se apliquen a varios objetos que tienen operaciones comunes.
Las interfaces son similares a la herencia: la herencia “agrupa” clases que “son lo mismo” (relación de parentesco) y la interface “agrupa” clases que “que realizan las mismas operaciones” (pero no necesariamente son iguales).
Las interfaces son un sistema bastante común, utilizado en programación orientada a objetos. Son algo así como declaraciones de funcionalidades que tienen que cubrir las clases que implementan las interfaces.
En una interfaz se definen habitualmente un juego de funciones que deben codificar las clases que implementan dicha interfaz. De modo que, cuando una clase implementa una interfaz, podremos estar seguros que en su código están definidas las funciones que incluía esa interfaz.
Las interfaces permiten el tratamiento de objetos sin necesidad de conocer las características internas de ese objeto y sin importar de qué tipo son... simplemente tenemos que saber que el objeto implementa una interfaz.
Vemos que tanto interfaces como clases abstractas son muy parecidos, los dos muestran declaraciones que debemos implementar más adelante, pero veamos algunas diferencias:
Una interfaz no puede contener atributos ni métodos implementados, mientras que una clase abstracta sí que puede contenerlos
Una clase sólo puede heredas una clase abstracta, mientras que en una misma clase se pueden implementar varias interfaces.
Las clases abstractas pueden declarar los métodos con diferente visibilidad (public, protected, internal, etc; private no, esto indicaría que una clase derivada no podría ver el método, por tanto no tendría sentido; final tampoco, porque no admitiría implementaciones futuras, aunque una clase derivada sí podría contener un método como final), mientras que en los interfaces todos los métodos deben ser públicos (también static)
Los métodos que no implementamos en una clase abstracta, deben ser abstract, en un interface, todos los métodos son abstract, y ninguno debe ser implementado.
Ejemplo :
Bien el ejemplo usaremos una clase abstracta y una interfaz para que nos comprometa a implementar metodos que son indispensables en un proyecto como el metodo para conectarse a la base de datos o cualquier fuente de datos Luego utilizaremos una clases que herede de la abstracta e implemente la interfaz creada .
Clase abstracta
Interfaz
Clase que que hereda e implementa
Clase que ejecuta
resultado en el navegador
Bien algunos se preguntaran porque tanta vuelta solo para un metodo si lo podemos hacer en un archivo de php con una llamada al metodo , pues si es cierto se puede hacer asi pero la programacion orientada a objetos nos da una creatividad para moldear nuestras aplicaciones porque de una clase abstracta , porque yo quiero que solo sea para heredar que no se pueda instanciar , luego para que una interfaz , la ocupo para que me obligue a implementar ese metodo y algunos diran si por logica tendria que ir ese metodo de conectar a la base pero ya en una aplicacion grande solo bastara ver que todas nuestras clases implementen esa interfaz y sabremos que ese metodo va ahi , y tambien para que cuando programemos en grupo los demas esten obligados a implementar esos metodos, asi nos ahorramos muchos errores.
Descargar
comenten no sean bayuncos...
martes, 26 de abril de 2011
Interfaces en PHP
Etiquetas:
bayuncadas,
chavakanada,
codigo rojo itca,
vacil mio
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario