フィールド・メソッドの隠蔽

■フィールド、メソッドの隠蔽

 継承時、サブクラスでスーパークラスに定義されているフィールド、メソッドと同じ

 名前のフィールド、メソッドを定義することを、隠蔽と言う。

 (*)隠蔽時、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;
  }
 }