提前致谢,
我的情况是我有一个名为 Vehicle 的抽象类,它包含:
private List<Tire> m_Tires;
问题是列表中的轮胎数量是在派生类中确定的,并且在一个和另一个之间有所不同,但实例化所需的代码是相同的,因此我非常希望避免代码重复并将其置于代码(实例化 m_Tires )在抽象的 Vehicle 类的构造函数中。
我首先考虑使用protected abstract void initializeTires();
在派生类中实现,并从Vehicle的构造函数中调用。我在这里看到它编程错误且容易出错。
所以简而言之:是否可以避免代码重复,或者我只需要与之保持和平?
答案 0 :(得分:4)
您可以创建一个protected
构造函数并将其链接。
答案 1 :(得分:1)
如何创建:
initializeTires(int numberOfTyres);
在基类中,并使用派生类中的正确参数调用它。
答案 2 :(得分:1)
@Oded,其中一个例子是
public abstract class MyAbstract {
private List<Tire> m_Tires;
protected MyAbstract(int count) {
m_Tires = new List<Tire>(count);
}
}
public class MyClass : MyAbstract {
public MyClass(int count) : base(count) { }
}