Dado que la pregunta es sobre pure clases abstractas, entonces diría que la respuesta va a estar relacionada con la herencia y el alcance. Es algo que me he preguntado muchas veces y esto es lo que se me ocurrió.
Obviamente las características relacionadas con la herencia múltiple han sido respondidas previamente, así que no voy a entrar en nada de eso. Sin embargo, el alcance es grande.
En una interfaz no se puede definir modificadores de acceso de un afiliado, ya que son implícitamente públicos, ... que está definiendo la interfaz públicapor su posterior ejecución. Hay una diferencia importante allí ya que puede definir un miembro abstracto protegido en una clase abstracta pura.
Heredar de una definición de tales clases obligaría a la heredera de implementar el miembro abstracta, sino el alcance de forma privada a los consumidores de la clase (aunque tendría que ser definida como protected
por lo menos que la clase fue marcado como sealed
más herederos tendrían acceso).
En esencia, puede definir una interfaz privada utilizando clases abstractas puras. Si esa es una buena idea es una pregunta diferente en conjunto, pero un buen uso que he visto utilizar es hacer cumplir los patrones de diseño y estandarizar los diseños de clase.
HTH
Una clase abstracta pura tiene el problema de una extensión única, pero puede definir otras posibilidades de acceso que las públicas. – csblo