我試圖創建一組類,其中一個共同的祖先是負責所有參與制定各種屬性的邏輯,和子孫只是改變取決於是否屬性的訪問的訪問修飾符它們在特定的後代中是必需的。如何增加財產
當我嘗試做如下圖所示我得到一個編譯錯誤:「不能改變訪問修飾符當重寫‘保護’繼承成員」
有沒有辦法來實現什麼我想做?由於
public class Parent
{
private int _propertyOne;
private int _propertyTwo;
protected virtual int PropertyOne
{
get { return _propertyOne; }
set { _propertyOne = value; }
}
protected virtual int PropertyTwo
{
get { return _propertyTwo; }
set { _propertyTwo = value; }
}
}
public class ChildOne : Parent
{
public override int PropertyOne // Compiler Error CS0507
{
get { return base.PropertyOne; }
set { base.PropertyOne = value; }
}
// PropertyTwo is not available to users of ChildOne
}
public class ChildTwo : Parent
{
// PropertyOne is not available to users of ChildTwo
public override int PropertyTwo // Compiler Error CS0507
{
get { return base.PropertyTwo; }
set { base.PropertyTwo = value; }
}
}
OOPS ..秒快速:) ..反正使用新的不一樣的覆蓋;新的隱藏父成員,這種方式不再是多態性。 – Galilyou 2009-05-20 09:19:24
@José,謝謝你做我所需要的。 – WileCau 2009-05-20 09:34:56