我有一个超类,它有一堆变量.例如
string s1= ""; string s2= ""; string s3= "";
Run Code Online (Sandbox Code Playgroud)
...等等
我想保证在编译时从继承自这个超类的子类中覆盖这些变量(赋予一些有用的东西).
这有一种优雅的方式吗?
使基类中的所有构造函数将它们作为参数,并从这些构造函数中设置它们:
protected BaseClass(string s1, string s2, string s3)
{
this.s1 = s1;
this.s2 = s2;
this.s3 = s3;
}
Run Code Online (Sandbox Code Playgroud)
...
// Just for example
public DerivedClass(string x) : base("foo", "bar", x)
{
}
Run Code Online (Sandbox Code Playgroud)
希望他们无论如何都是私人领域,所以衍生类无论如何都无法直接设置它们,对吧?:)