public class starter
{
public static void Main()
{
XClass obj = new XClass();
}
}
public class ZClass
{
public ZClass(int param)
{
Console.WriteLine("ZClass constructor");
}
}
public class YClass : ZClass
{
public YClass(int param)
: base(YClass.MethodA())
{
Console.WriteLine("YClass consturctor");
}
public static int MethodA()
{
Console.WriteLine("YClass constructor initializer");
return 0;
}
}
public class XClass : YClass
{
public XClass():base(XClass.MethodA())
{
Console.WriteLine("XClass consturctor");
}
public static new int MethodA()
{
Console.WriteLine("XClass constructor initializer");
return 0;
}
}
public class Strater
{
public static void Main()
{
XClass obj = new XClass();
}
}
public class ZClass
{
~ZClass()
{
Console.WriteLine("ZClass destructor");
}
}
public class YClass : ZClass
{
~YClass()
{
Console.WriteLine("YClass desturctor");
}
}
public class XClass : YClass
{
~XClass()
{
Console.WriteLine("XClass desturctor");
}
}