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

Problema con clase abstracta

Estas en el tema de Problema con clase abstracta en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, tengo una clase abstracta y otra que la extiende. Me arroja el siguinete error: Fatal error: Abstract function GridPrototypeDocument::arrayFieldMore() cannot contain body in C:\xampp\htdocs\contabilidad\includes\class.GridPr ...
  #1 (permalink)  
Antiguo 07/11/2006, 12:28
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Problema con clase abstracta

Hola, tengo una clase abstracta y otra que la extiende.

Me arroja el siguinete error:

Fatal error: Abstract function GridPrototypeDocument::arrayFieldMore() cannot contain body in C:\xampp\htdocs\contabilidad\includes\class.GridPr ototypeDocument.php on line 445

gracias por cualquier ayuda.
  #2 (permalink)  
Antiguo 07/11/2006, 13:41
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
En donde defines el método como abstracto no puede tener cuerpo, por lo tanto solo la definición de la misma, pero sin llaves.

abstract function arrayFieldMore();

¿Era eso?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 07/11/2006, 14:20
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Gracias, eso era, lo tenia con las llaves {}:
Código PHP:
abstract function arrayFieldMore(){}; 
ahora una duda con interface:
Código:
Fatal error: Access type for interface method GridPrototypeDocumentInterface::queryAjax() must be omitted in C:\xampp\htdocs\contabilidad\includes\interface.GridPrototypeDocument.php on line 7
Código PHP:
interface GridPrototypeDocumentInterface
{
    public function 
formAjax( );
    public function 
dispatcherAjax( );
    private function 
queryAjax( );
    private function 
insertAjax( );
    private function 
deleteAjax( );
    private function 
editAjax( );
    private function 
saveAjax( );

gracias
  #4 (permalink)  
Antiguo 07/11/2006, 15:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Los metodos privados, no se declaran en las interfaces, ya que son de cada clase implementar sus propios metodos.

En los metodos privados solo se capturan los metodos publicos que afectan el comportamiento de la clase.
  #5 (permalink)  
Antiguo 07/11/2006, 17:10
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Iniciado por GatorV Ver Mensaje
Los metodos privados, no se declaran en las interfaces, ya que son de cada clase implementar sus propios metodos.

En los metodos privados solo se capturan los metodos publicos que afectan el comportamiento de la clase.
no entendí el ultimo parrafo:

Cita:
Iniciado por GatorV Ver Mensaje
En los metodos privados solo se capturan los metodos publicos que afectan el comportamiento de la clase.
Entonces en las interfaces solo se declaran metodos publicos, nada más?

Gracias y salu2
  #6 (permalink)  
Antiguo 07/11/2006, 19:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Asi, es, una interface define el comportamiento de una clase, y que caracteristicas escenciales necesita, para que puedas abstraer y saber que la clase que implementa esa interface tiene esos metodos definidos (aunque no hagan nada)
  #7 (permalink)  
Antiguo 09/11/2006, 04:15
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
"Todos los métodos en una interface deben ser públicos, esto es la naturaleza de una interface."

Hay una "ley" que dice: "cuando todo falla, ve al manual"
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #8 (permalink)  
Antiguo 09/11/2006, 08:09
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Iniciado por enriqueplace Ver Mensaje
"Todos los métodos en una interface deben ser públicos, esto es la naturaleza de una interface."

Hay una "ley" que dice: "cuando todo falla, ve al manual"
Jaja, muchas gracias a ambos. y saludos
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 12:19.