zoukankan      html  css  js  c++  java
  • 一道小小面试题的细节分析

    今天突然想到以前遇到的一个问题,题目如下(可能绝大多数人都遇到过):

    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 b = new B();

    答案:x=1, y=0

     

     

    知识点:
    1.类的实例化过程。new B();1、先初始化之类的字段X=1 y=0,接着实例化父类(A)的构造函数,然后在调用子类(B)的构造函数。

     

  • 相关阅读:
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Citrix 挂经思考
    eBay OA挂经反思
    roblox OA ancestor names 根据roman to int改的
  • 原文地址:https://www.cnblogs.com/51net/p/2997813.html
Copyright © 2011-2022 走看看