c# 关于基类和子类的方法调用问题--总结

不准确的地方请朋友加以指正出来,避免误导他人


首先代码类似如下

 class Program
    {
        static void Main(string[] args)
        {
            new B();
        }
    }
    class A
    {
        public A()
        {
            printFields();
        }
        public  virtual  void  printFields()
        {
            Console.WriteLine("子类会调用基类的方法么?");
        }
    }

     class B : A
    {
        int x = 1; int y;
        public B()
        {
            y = -1;
        }
        public override void printFields()
        {
            Console.WriteLine("x={0},y={1}", x, y);

        }
    }
}


情况如上,调用结构如上:

总结:当且仅当子类重写父类方法的时候,即override的时候,实例子类调用基类的构造函数,基类调用的方法才是子类的,否则调用基类本身的方法


猜你喜欢

转载自blog.csdn.net/zhongheijituan/article/details/38131529
今日推荐