【发布时间】:2017-07-30 09:55:36
【问题描述】:
有什么方法可以在后代类构造函数的末尾调用超级构造函数吗?
它在 Java 中有效,但在 C# 中,关键字 base 似乎并不等同于 Java 的 super。
例子:
class CommonChest : BasicKeyChest
{
public CommonChest()
{
Random rnd = new Random();
int key = rnd.Next(1, 6);
int coins = rnd.Next(70, 121);
super(key, coins, "Common");
}
}
【问题讨论】:
-
不,你不能延迟构造函数的执行。这是为了避免忘记调用它并确保所有继承的成员都正确初始化。
-
"它在 Java 中工作" 不,它没有。 Java要求它是第一个语句,所以和C#的
base()基本一样,只是写的地方不一样。