フィールド・メソッドの隠蔽
■フィールド、メソッドの隠蔽
継承時、サブクラスでスーパークラスに定義されているフィールド、メソッドと同じ
名前のフィールド、メソッドを定義することを、隠蔽と言う。
(*)隠蔽時、newはつけなくてもいいがつけるのが規則。
ただし、隠蔽はポリモーフィズムが動作しない為、原則使用すべきではない。
オーバーライドを使用する。
public class Money
{
public decimal Price { get; set; }
public decimal PayMoney()
{
return Price;
}
}
public class Jpy:Money
{
public new decimal Price { get; set; } /// プロパティの隠蔽
public new decimal PayMoney() /// メソッドの隠蔽
{
return Price * 100;
}
}