Rebar
クラスがReinforcement
クラスから派生し、RebarShape
クラスがReinforcementShape
クラスを継承する場合、C#コードでは、ベースクラスのReinforcementShape
プロパティをRebarShape
クラスでオーバーライドすることはできますか?派生クラスを持つ基本クラスのオーバーライドプロパティ
public class ReinforcementShape
{
}
public class RebarShape : ReinforcementShape
{
}
public class Reinforcement
{
public ReinforcementShape Shape { get; set; }
}
public class Rebar : Reinforement
{
// I want to override the Shape property
// but with its derived class which is RebarShape
// override the base property somehow!
public RebarShape Shape { get; set; }
}
更新:
現在の実装の何が問題になっているのですか?ベースで
:派生で
public virtual ReinforcementShape Shape { get; set; }
:
public new RebarShape Shape { get; set; }
プロパティをオーバーライドして戻り値の型を変更することはできません。 –