¿Cuál es la diferencia entre una clase abstracta pública con un constructor público y una clase pública con un constructor protegido? No tenemos ninguna función que sea abstracta en nuestra clase abstracta, pero queremos que los programadores solo sean capaces de crear objetos que extiendan esa clase.¿Cuál es la diferencia entre abstracto y protegido en mi escenario? C#
Ambos escenarios se compilan y funcionan, sin embargo, no entiendo cuál sería mejor usar en qué escenario. Me han criado para comprender que aunque no se puede crear una instancia de una clase abstracta directamente (solo a través de una clase secundaria no abstracta), la clase abstracta normalmente debería contener funciones abstractas que los niños de esa clase deben implementar.
No tener un constructor protegido en una clase pública significa que la instanciación de esta clase no es posible (este es el único constructor que tenemos).
Por lo que vale, creo que una clase abstracta transmite las intenciones de su diseño más claramente. – FishBasketGordo
Está muy bien entender las diferencias, sin embargo, es más significativo entender "¿qué problema necesitas resolver?" Dependiendo de su respuesta, la creación de una instancia se puede hacer de diferentes maneras (clase de fábrica, por ejemplo) que puede ser independiente del tipo de clase declarada. –
Gracias a todos por su entrada –