使用Base控制基类的创建
假设已经给Manager类型增加了6个参数的构造函数,它的代码为:
static void Main(string[] args) { Manager chucky = new Manager("Chucky", 35, 92, 100000, "333-23-2322", 9000); }
如果看一下参数列表,能清楚地看到这些参数中的大多数都应当存储在Employee基类定义的成员变量中。为此,可以如下所示实现新的构造函数。
public Manager(string fullName, int age, int empID, float currPay, string ssn, ulong numbOfOpts) { numberOfOptions = numbOfOpts; ID = empID; Age = age; Name = fullName; SocialSecurityNumber = ssn; Pay = currPay; }
尽量这在技术上是可行的,但是不理想。在C#中,除非另外指定,基类的默认构造函数是在执行派生类构造函数之前调用的。这样,在创建派生类对象的过程中就进行了冗余的调用请求(基类和派生类的属性被重复初始化)。
为了优化派生类的创建,应该显示的调用一个基类构造函数来实现派生类构造函数。用这种方式,可以减少调用继承初始化成员的次数,节省了时间。我们将代码修改为:
public Manager(string fullName, int age, int empID, float curPay,
string ssn, ulong numbOfOpt)
: base(fullName, age, empID, currPay, ssn) { numberOfOptions = numbOfOpts; }

浙公网安备 33010602011771号