覆盖子类中的字段或属性
我有一个抽象基类,我想声明一个字段或一个属性,该属性将在从该父类继承的每个类中具有不同的值。 我想在基类中定义它,以便可以在基类方法中引用它-例如,重写ToString表示“此对象的属性/字段类型”。我可以看到三种方式来执行此操作,但是我想知道-最佳或公认的方式是什么?新手问题,对不起。 选项1: 使用抽象属性,并在继承的类上重写它。这得益于强制执行(您必须覆盖它)并且它很干净。但是,返回一个硬代码值而不是封装一个字段感觉有点错误,这是几行代码而不是仅仅几行。我还必须声明一个用于“ set”的主体,但这并不重要(而且可能有一种避免我不知道的主体的方法)。 abstract class Father { abstract public int MyInt { get; set;} } class Son : Father { public override int MyInt { get { return 1; } set { } } } 选项2 我可以声明一个公共字段(或一个受保护的字段),并在继承的类中显式覆盖它。下面的示例将警告我使用“ new”,我可能可以这样做,但是感觉不对,它破坏了多态性,这就是重点。似乎不是个好主意... abstract class Mother { public int MyInt = 0; } …