我写了下面的代码,但是我对下面代码的输出有怀疑。为什么输出是yyxz?
首先疑问是,当我们初始化子类对象时,首先调用基类构造函数,所以OutPut只应该是xz。 Y类的构造函数不应该被调用。
第二疑问是Y被调用,那么订单应由yxyz。
请清除我的疑惑。
class X
{
Y y = new Y();
public X()
{
Console.Write("x");
}
}
class Y
{
public Y()
{
Console.Write("y");
}
}
class Z: X
{
Y y = new Y();
public Z()
{
Console.Write("z");
}
}
public static void Main()
{
new Z();
}