C# 类属性可以用隐藏和覆盖吗?

C# 类属性可以用隐藏,也可以用覆盖。

  • 隐藏的话,基类与派生类属性的类型可以不相同;
  • 覆盖的话,基类与派生类属性的类型必须相同。

为什么属性可以用隐藏和覆盖?不是只是存储一个值吗?

太低估属性的作用了,属性不光是存个值那么简单,在 get、set 中同样可以有逻辑代码,就像方法一样。

注意与字段区别

属性是具有 get、set 关键字的,而字段就是直接赋值,比如 private string _name = "cftea"。

字段只能用隐藏,不能用覆盖。

扩展

属性也可以用 abstract(字段不行),abstract 的属性,也是 override 的。

你可能感兴趣的