Nel nostro codebase, ho incontrato il seguente costrutto: C'è una classe base B, e poi c'è una classe D che deriva da B, ma non sovrascrive o aggiunge alcun membro. Di fatto, D è completamente vuoto - eccetto per un costruttore che inizializza alcune proprietà (ereditate) in un modo speciale.
Considera questo esempio di C #:
public class Angle
{
public Angle(float degrees)
{
Degrees = degrees;
}
public float Degrees { get; set; }
}
public class RightAngle : Angle
{
public RightAngle() : base(90)
{
}
}
Per me, questa sembra una grave violazione dei principi OOP, ma non riesco a individuare il problema. È un uso corretto dell'eredità o una cattiva idea? Devo sostituire la classe derivata con -per esempio- una fabbrica statica?