Estoy tratando de mejorar mi conocimiento de OOP en PHP y he estado investigando clases e interfaces abstractas.Ejemplos de Real World de funciones avanzadas de OOP para PHP
Lo que he aprendido
- Ambos son clases que no se pueden crear instancias sí mismos, sino olny se pueden extender (implementado en el caso de las interfaces)
- Las clases abstractas proporcionan métodos y propiedades para otras clases que los extienden
- Si una clase usa un método abstracto, la clase en sí misma también debe ser abstracta.
- Si se define un método abstracto dentro de una clase abstracta, todas las clases secundarias deben definir los detalles de ese método. Los métodos no definidos como abstractos se pueden usar de la misma manera que los métodos normales.
- Las interfaces definen qué métodos debe tener una clase que implemente. La funcionalidad de los métodos no está definida en la interfaz, la interfaz solo ofrece una lista de métodos que deben incluirse en la clase secundaria.
- Una interfaz no define ninguna propiedad.
- Las clases pueden implementar tantas interfaces como quieren pero tienen que definir un método para cada una de las interfaces que implementan
Creo que cubre los conceptos básicos. Por favor, siéntase libre de agregar a eso si cree que hay algo que me he perdido.
Lo que me gustaría saber es si hay ejemplos del mundo real de implementación de estas clases, especialmente la clase de interfaz. ¿Alguien sabe de alguna aplicación de código abierto que los use que pueda navegar para comprenderlos mejor y ver dónde y cuándo se usan con eficacia? He encontrado ejemplos de libros que usan animales que no demuestran la importancia de estas clases.
También, trabajo en progreso de ZF2 wiki: http://framework.zend.com/wiki/display/ZFDEV2 – joksnet
@Gordon: busque por ejemplo en ese: http://www.php.net/manual/en /class.splheap.php – vartec
@Gordon, editado la respuesta – vartec