Private vs Protected - Preocupación de buenas prácticas de visibilidad [cerrado]

He estado buscando y sé la diferencia teórica.

públic - Cualquier clase / función puede acceder al método / propiedad.protegid - Solo esta clase y cualquier subclase pueden acceder al método / propiedad.privad - Solo esta clase puede acceder al método / propiedad. Ni siquiera será heredado.

Eso está bien y bueno, la pregunta es, ¿cuál es lapráctic diferencia entre ellos? ¿Cuándo usaríasprivate y cuándo usaríasprotected? ¿Existe una buena práctica estándar o aceptable sobre esta?

Hasta ahora, para retener el concepto de herencia y polimorfismo, usopublic para cualquier cosa a la que se deba acceder desde el exterior (como los constructores y la funcionalidad de la clase principal), yprotected para métodos internos (lógica, métodos auxiliares, etc.). ¿Estoy en el camino correcto?

(Tenga en cuenta que esta pregunta es para mí, pero también para referencia futura ya que no he visto una pregunta como esta SO).

Respuestas a la pregunta(12)

Su respuesta a la pregunta