2

提前致谢,

我的情况是我有一个名为Vehicle的抽象类,它包含:

private List<Tire> m_Tires;

问题是列表中的轮胎数量是在派生类中确定的,并且在一个和另一个之间有所不同,但是实例化所需的代码是相同的,因此我非常希望避免代码重复并放置该代码(即在抽象Vehicle类的构造函数中实例化m_Tires )。

我首先想到使用protected abstract void initializeTires();在派生类中实现并从Vehicle 的构造函数中调用。我在这里看到它的编程很糟糕并且容易出错。

所以长话短说:是否有可能避免这里的代码重复,或者我只需要和它和平相处?

4

3 回答 3

4

您可以创建一个protected构造函数并将其链接起来。

于 2010-12-11T20:49:19.193 回答
1

如何创建一个:

initializeTires(int numberOfTyres); 

在基类中并在派生类中使用正确的参数调用它。

于 2010-12-11T20:52:11.173 回答
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) { }   
}
于 2010-12-11T20:53:17.333 回答