C#继承问题

标签 c# inheritance

我有一个有私有(private)字段的类......(汽车)

然后我继承了这个类...(奥迪)

在 (Audi) 类中,当我键入此内容时。在构造函数中...

私有(private)字段不可用...

我是否需要做任何特别的事情来公开 (cars) 类中的这个私有(private)字段,以便可以通过它访问它们。在(奥迪类)?

最佳答案

一个(坏的)选择是使字段 protected - 但不要这样做;它仍然会破坏适当的封装。两个不错的选择:

  • 二传手受到保护
  • 提供一个接受值的构造函数

例子:

public string Name { get; protected set; }

(C# 2.0)

private string name;
public string Name {
    get { return name; }
    protected set { name = value; }
}

或:

class BaseType {
  private string name;
  public BaseType(string name) {
    this.name = name;
  }
}
class DerivedType : BaseType {
  public DerivedType() : base("Foo") {}
}

关于C#继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392922/

相关文章:

c# - WPF 按钮隧道化 OnClick 事件

c++ - 使用 C++ 通过继承组织树复制

c++ - 指向基类的指针 vector ,调用虚函数的奇怪行为

javascript - 如何将函数从主对象动态继承到其他对象?

c# - 如何在给定条件的情况下从递归层次结构返回节点路径?

c# - 如何强制注销网站的所有用户?

c# - 将运算符应用于非数学对象?

C++继承无法识别

java - C++ 模板和 Java 中的继承

C# .NET 仅为特定的 api Controller 或模块(项目)中的 api Controller 启用 Swagger UI