Ist es in PHP 5 möglich, eine Schnittstelle mit privaten/geschützten Methoden zu haben?Ist es möglich, eine Schnittstelle mit privaten/geschützten Methoden zu haben?
Im Moment habe ich:
interface iService
{
private method1();
}
, die einen Fehler wirft:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE
Ich möchte nur eine Bestätigung haben, dass dies der Fall ist, die eine Schnittstelle nur öffentliche Methoden enthalten.
Ich finde die Antwort enttäuschend. Ich möchte Schnittstellen, die auch geschützte/private Methoden unterstützen. Zum Beispiel habe ich eine Klasse, bei der eine öffentliche Methode, die im Abstract implementiert wird, auf einer geschützten Methode beruht, die von einer Unterklasse implementiert wird. Ich möchte eine Schnittstelle verwenden, um die von den abstrakten public-Methoden benötigten geschützten Methoden durch Unterklassen zu implementieren. – Stoutie
Verwenden Sie eine abstrakte Basisklasse für diesen Zweck. Sie können die beiden Ansätze kombinieren: Öffentliche Methoden in der Schnittstelle, Implementierung dieser Methoden in einer abstrakten Basisklasse, die abstrakte geschützte Methoden definiert (und auf sie zurückgreift). –
Wenn Sie private oder geschützte Methoden deklarieren könnten, wäre das 'private function method1();' not 'private method1();'. – turibe