I protected sono visibili alle classi dello stesso package e alle sotto classi di quella in cui sono dichiarati tali.
Come faresti poi ad accedere ad un metodo di una classe di un altro package?Se cosi fosse, se si crea un progetto non è meglio dichiarli sempre protected invece che public?