Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

herencia Multiple en PHP por medio de las interfaces??

Estas en el tema de herencia Multiple en PHP por medio de las interfaces?? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas he estado leyendo sobre herencia multiples en los lenguajes de programacion algunos dicen que es buena otros dicen que no, mi opinion personal en ...
  #1 (permalink)  
Antiguo 27/12/2010, 19:54
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
herencia Multiple en PHP por medio de las interfaces??

Buenas he estado leyendo sobre herencia multiples en los lenguajes de programacion algunos dicen que es buena otros dicen que no, mi opinion personal en este caso me la reservo para no crear una controversia de este tema, en PHP he leido muchas veces que esta no existe y de echo si intentas algo como esto
Código PHP:
Ver original
  1. <?php
  2. abstract  class a
  3. {
  4.     abstract function escribir($articulo = NULL);  
  5. }
  6. abstract class b
  7. {
  8.     abstract function leer($articulo = NULL);  
  9. }
  10. class c extends a,b
  11. {
  12.     function escribir($articulo = NULL)
  13.     {
  14.         echo $articulo;
  15.     }
  16.     function leer($articulo = NULL)
  17.     {
  18.         echo $articulo;
  19.     }
  20. }
  21. $ob = new c();
  22. $ob->leer("hola");
  23. ?>
te da el siguiente error
Cita:
Parse error: syntax error, unexpected ',', expecting '{' in ruta/archivo.php on line 10
que es la comoa que separa las dos clases de las cuales quiero extenderlo, pasa lo mismo si le doy espacio entre ellas, en cambio si realizo esto:

Código PHP:
Ver original
  1. <?php
  2. interface a
  3. {
  4.     public function escribir($articulo = NULL);
  5. }
  6. interface b
  7. {
  8.     public function leer($articulo = NULL);
  9. }
  10. class c implements a,b
  11. {
  12.     function escribir($articulo = NULL)
  13.     {
  14.         echo $articulo;
  15.     }
  16.     function leer($articulo = NULL)
  17.     {
  18.         echo $articulo;
  19.     }
  20. }
  21. $ob = new c();
  22. $ob->leer("hola");
  23. ?>
el resultado es correcto entonces se puede realizar herencia multiple con PHP?? o mejor dicho que explicacion se le pudiera dar, no se si el tema ya ha sido tratado pero me surgio esta pequeña pero fastidiosa en mi mente duda xq se puede hacer herencia multiple de las interfaces y no de las clases?? gracias de antemano y disculpen si ya habian tratado el tema
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #2 (permalink)  
Antiguo 27/12/2010, 22:40
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: herencia Multiple en PHP por medio de las interfaces??

La conclusion es sencilla; php no implementa herencia multiple de clases pero si de interfaces y a un que las dos parecen ser la misma cosa, conceptualmente son diferentes. asi que da una investigada a lo que son las interfaces y crea tu propio criterio al respecto.

Como algo agregado algunos lenguajes no implementan la primera no por que este mal si por que el abuso agrega complejidad a los diseños y a la larga genera herencia repetida y colision de nombres en los metodos lo que agrega ambiguedad en tiempo de ejecucion y hace que el compilador no pueda decidir que metodo de que padre va usar.

Saludos.
  #3 (permalink)  
Antiguo 27/12/2010, 22:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: herencia Multiple en PHP por medio de las interfaces??

si un poco despues que hice el post me releyendo sobre las interfaces me di cuenta que no es lo mismo ya que son dos cosas diferentes ya que las interfaces son en coloquial contratos a implementar en las clases, de todas maneras gracias por tu respuesta y tu comentario, y como dije no quiero crear polemica si es bueno el uso de herencia multiple o no ya que es algo que algunos dicen que esta bien otros no y cada quien da razones validas y ahi si es verdad que uno se vuelve loco , como dije tengo mi criterio personal,
Cita:
Como algo agregado algunos lenguajes no implementan la primera no por que este mal si por que el abuso agrega complejidad a los diseños y a la larga genera herencia repetida y colision de nombres en los metodos lo que agrega ambiguedad en tiempo de ejecucion y hace que el compilador no pueda decidir que metodo de que padre va usar.
esto que indicaste me parece una gran verdad saludos y gracias por tu respuesta
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: herencia, medio, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.