¿Es posible en PHP 5 tener una interfaz que tenga métodos privados/protegidos?¿Es posible tener una interfaz que tenga métodos privados/protegidos?
Ahora mismo tengo:
interface iService
{
private method1();
}
Eso genera un error:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE
Yo sólo quiero tener confirmación de que es el caso de que una interfaz sólo puede contener métodos públicos.
Encuentro la respuesta decepcionante. Me gustaría interfaces que admitan también métodos protegidos/privados. Por ejemplo, tengo una clase, donde un método público, implementado en abstracto, se basa en un método protegido implementado por subclase. Quiero usar una interfaz para requerir subclases para implementar los métodos protegidos requeridos por los métodos públicos abstractos. – Stoutie
Usa una clase base abstracta para ese propósito. Puede combinar los dos enfoques: métodos públicos en la interfaz, implementación de esos métodos en una clase base abstracta que define (y se basa) en métodos abstractos protegidos. –
Si pudiera declarar métodos privados o protegidos, sería 'private function method1();' not 'private method1();'. – turibe