Cuando se define una interfaz, se declara una serie de métodos pero sin desarrollar, o sea, sin especificar ningun codigo...
Código PHP:
Ver original
interface Web { public function getTitulo(); }
Luego, las clases que implementan esa interface seran las encargadas de proporcionar un codigo a los metodos que contiene esa interface.
Código PHP:
Ver original
class pagina_Web implements Web { public function getTitulo() { return $this->titulo; } }
Conclusion: Una interface no permite crear el cuerpo de ninguna funcion, dejando esta tarea a las clases que la implementan.
Hasta aquí, todo entendible, la duda empieza en la utilizacion de una clase abstracta.
Las clases abstractas permiten definir funciones completas que pueden heredarse.
O sea, que en vez de usar el ejemplo anterior, podria a ver hecho directamente así:
Código PHP:
Ver original
abstract class Web { public function getTitulo() { return $this->titulo; } abstract public function otra_cosa(); }
En primer lugar os pregunto:
1 - ¿Es correcto mi conocimiento de inteface y clases abstractas? o por el contrario ¿entendí mal el concepto?
2 - ¿Cuando utilizo uno y cuando utilizo el otro?
En fin, son muchos conceptos que acabo de aprender y tengo que ir asimiliando
Saludos, muchas gracias