Classes PHP por que usar palavra-chave pública?

Por que devo declarar propriedades de classe (variáveis) ou métodos (funções) usando a palavra-chavepublic, se eles são públicos por padrão? Ou são eles?

Para formular minha pergunta de maneira diferente, épublic redundante? Compreendoprivate eprotected, mas por que declararpublic se os alunos são públicos, afinal?