【问题标题】:Inheritance of Properties in C#C#中属性的继承
【发布时间】:2022-07-27 00:21:12
【问题描述】:

如何防止一个属性的继承,使其不再计入实例化对象。 在以下示例中,我希望对象实例 B 仅包含两个属性,即 MyCommonProperty 和 Name。

public class A
{
    public string MyCommonProperty { get; set; }
    public string MyClassASpecificProperty { get; set; }
}
public class B : A
{   
    public string Name { get; set; }    
}

【问题讨论】:

  • 将其他属性设为私有。但是,如果它需要保持公开:运气不好;你不能。
  • 它必须保持公开
  • 那么你基本上是在试图打破继承。如果有人可以写A a = new B();,那么他们可以使用a.MyClassASpecificProperty。您可能需要考虑使用 real 基类 A,然后使用单独的派生类添加 MyClassASpecificProperty
  • @diaz15:那么继承不是这项工作的正确工具。如果B“是”A,那么B 将具有A 的属性。
  • 如果 B 是 A,则 B 具有 A 的成员。如果 A 的成员对 B 没有意义,请重新考虑在这种情况下使用继承。

标签: c# c#-10.0


【解决方案1】:

更改您不希望继承类型访问的属性的修饰符private

【讨论】:

  • 它必须保持公开
猜你喜欢
  • 2017-12-18
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多