jas*_*son 11
所以听起来你问的是以下内容.你有
class Parent {
public SomeType ParentProperty { get; set; }
}
class Child : Parent { }
Run Code Online (Sandbox Code Playgroud)
并且你想隐藏SomeProperty在实例中可见Child.
不要这样做!不要隐藏可见的基类属性.首先,它很容易解决:
Parent p = new Child();
p.ParentProperty; // oops!
Run Code Online (Sandbox Code Playgroud)
其次,这是对Liskov替代原则的严重违反.基本上,原则说任何你知道的关于所有实例的事情都Parent应该对所有实例都是正确的Child.在这里,我们知道所有Parent具有可见属性的实例都称为ParentProperty类型SomeType.因此,同样应该(道德应该)适用于所有的实例Child.
你能告诉我们你为什么要这样做,也许我们可以建议一个替代方案吗?