Hola,
Una interface siempre es pública, no tiene sentido otra definición. Cuando defines una interface, estas diciendo que debe implementar ciertas características para ser usadas externamente por otro componente y asegurarte que el método existe, pero no sirve de nada si son privadas o abstractas.
Es decir, si defino una interface Openable, con método privados,
Código PHP:
interface Openable{
private function open();
}
class Door implements Openable{
private function open() {}
}
¿Acaso sirve de algo la interface en ese caso? Si no puedo llamar al método Door->open() sino es desde la misma clase, y la misma clase sabe que implementa y que no implementa.
Igual sucede con cualquier otra definición que no sea pública.
Saludos,