【发布时间】:2016-10-17 10:11:36
【问题描述】:
我知道它有效,但似乎无法理解实际发生的情况:
public class Base {
private bool active;
protected bool Active {
get { return active; }
set { active = value; }
}
}
public class Child : Base {
// ...
}
AFAIK,Child 不会继承 private 字段,而 Child.Active 有效。
- 这是否意味着 Child 仍然以某种方式继承了该领域的知识?
- 使用自动属性时(内部)工作方式是否不同?
【问题讨论】:
-
在子类中 - 当您调用 Active 时,将使用
Base类中的实现,其中使用了私有字段。就像在方法中一样(您可以使用使用私有字段的基本方法)。还要记住:属性被实现为两种方法,underhood。当您覆盖Active时,您不能使用基类中的后场。
标签: c# inheritance