Ver Mensaje Individual
  #11 (permalink)  
Antiguo 10/03/2011, 21:10
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: duda básica de POO PHP..

Hola,

Cita:
Iniciado por Copia Ver Mensaje
oh! vaya entonces es un error muy grueso del libro que estoy leyendo.
Entonces para resumir en una interfaz, los métodos no deben ser de tipo abstract, private o protected, ya que solo se acepta public.
Exactamente, como el ejemplo que te mostré, claramente se puede observar que no tiene sentido, ni siquiera dentro de la misma clase, el método solamente se puede usar internamente, cual sería el motivo de hacer público a todas las demas clases con una interface ... que tengo un método que no pueden llamar, ni la misma clase.

Código PHP:
Ver original
  1. interface Openable{
  2.   private function open();
  3. }
  4.  
  5. class Door implements Openable{
  6.   private function open() {}
  7.   public function ProbarOpen(Openable $otro) {
  8.      $otro->open(); // No se puede llamar porque es privado.
  9.   }
  10. }

En los métodos abstractos sucede algo muy parecido, no puedo llamarlos porque son abstractos, y no estoy seguro si la clase los implementa concretamente o no, si logro llamar a un método abstracto (que es virtual y no existe su implementación concreta) ... seguramente voy a obtener un error muy feo a un nivel demasiado bajo en la capa de aplicación.

Saludos,