Diciamo che ho due classi Base
e Derived : Base
.
Derived
deve essere in grado di utilizzare un DerivedComponent : BaseComponent
,
proprio come tutti gli altri derivati di Base
usano il proprio componente specifico derivato.
Tutti questi componenti di BaseComponent
, come DerivedComponent
, hanno alcune funzionalità comuni accessibili
in Base
.
Poiché non desidero ridurre questo BaseComponent
ogni volta che utilizzo la funzionalità DerivedComponent
in Derived
, ho anche aggiunto il suo riferimento come DerivedComponent
a Derived
.
class Base
{
private BaseComponent component;
protected Component
{
get { return component; }
}
Base(BaseComponent component)
}
class Derived : Base
{
private DerivedComponent component;
Derived() : base(new DerivedComponent())
{
this.component = (DerivedComponent) base.Component;
}
}
class BaseComponent {}
class DerivedComponent : BaseComponent {}
È necessario farlo in questo modo, con il downcast?
Non posso in qualche modo riutilizzare l'argomento da base()
e assegnarlo direttamente al mio componente Derived
?