C#继承
class A { public A() { PrintFields(); } public virtual void PrintFields() { } } class B : A { int x = 1; int y; public B() { y = -1; } public override void PrintFields() { Console.WriteLine("x={0},y={1}", x, y); } }
B b = new B();
输出结果为:x=1,y=0
当实例化B对象时,会先自动调用A类的无参构造函数,即会输出PrintFields()方法,即x=1,y=0(因为全局变量默认为0),然后再调用B的无参构函,而B()就只是为y赋值为-1,并没有做任何的输出
如果 B b=new B();b.PrintFields();那么输出结果就是x=1,y=-1