我寫了下面的代碼,但是我對下面代碼的輸出有懷疑。爲什麼輸出是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();
}