如何限制派生类访问c#中基类的一个属性

时间:2013-09-05 11:43:19

标签: c#

我有一个派生(Say B)类,我希望在其中访问基类的某些属性(Say A),但不能访问基类的所有属性。对于前者我在基类中有5个属性,如Name,Age,Designation,Location和Salary,我想在derive类中继承。但是,我希望访问所有属性接受基类的“Salary”属性(衍生属性不应该由派生类B访问。我将如何实现它

提前致谢。

2 个答案:

答案 0 :(得分:5)

public class Employee
{
    public double Salary { get; private set; }
}

假设:

  • 您希望每个人都可以阅读该资产
  • 您不希望子类能够写入Salary

但是,如果您希望外部类写入Salary,而不是Employee的子类,那么这是不可能的。子类将始终具有至少与外部类一样多的特权。

如果您不希望任何人能够读取/写入该属性(Employee类除外),那么只需将其设为私有

public class Employee
{
    private double Salary { get; set; }
}

答案 1 :(得分:0)

将此属性标记为私有:

class A
{
    protected string Name { get; set; }
    ...
    private string Salary { get; set; } // derived classes has no access now
}