Te sugiero leer la documentación oficial, cada operador de visibilidad tiene un uso y fin determinado, y dependiendo del problema en especifico debes usar uno u otro.
http://php.net/manual/es/language.oop5.php
No hay una regla general que te indique usar uno sobre otro, todo es relativo y en relación al objetivo especifico de tu clase.
Todo está bien explicado en el manual, si tienes una duda más especifica no dudes en volver.