zoukankan      html  css  js  c++  java
  • 20130409和陈讨论面试题

       public abstract class A          

             {                 

                    public A()

                      {                   Console.WriteLine('A');

                      }

                      public virtual void Fun()

                      {

                      Console.WriteLine("A.Fun()");

                      }

                      }

                      public class B: A

                      {

                      public B()

                      {

                      Console.WriteLine('B');

                      }

                      public new void Fun()

                      {

                      Console.WriteLine("B.Fun()");

                      }

                      public static void Main()

                      {

                      A a = new B();

                      a.Fun();

                      }

                      }

    输出a b a.fun()因为在B中public new void Fun(),“new”中表示方法重写,这在父类和子类方法名相同时表示为子类特有的方法

      200 100 100,装箱是,把a的值复制了一份,装起来,让ob指向。就是说此时ob指向的内容与之前的a没关系了,因为此时内存有2份。。。 a=200这句 没有拆箱
    因为a还是int,200也是int , int c=(int)ob;这个才是拆箱 因为ob是引用类型,c是int类型 拆箱与装箱一定是引用类型与值类型之间变化  装箱: 对值类型在堆中分配一个对象实例,并将该值复制到新的对象中。按三步进行。 第一步:新分配托管堆内存(大小为值类型实例大小加上一个方法表指针和一个SyncBlockIndex)。 第二步:将值类型的实例字段拷贝到新分配的内存中。 第三步:返回托管堆中新分配对象的地址。这个地址就是一个指向对象的引用了。
  • 相关阅读:
    mysql全文索引
    oracle窗口函数的实战
    数据库的三大范式
    Oracle12cR1 Data Guard 实施文档
    Oracle 11gR2 RAC 删除节点
    Jboss部署文档
    Hexo搭建静态博客踩坑日记(一)
    一行代码引入博客园樱花飘落特效
    Hexo搭建静态博客踩坑日记(二)
    学习axios必知必会(2)~axios基本使用、使用axios前必知细节、axios和实例对象区别、拦截器、取消请求
  • 原文地址:https://www.cnblogs.com/xjt360/p/3009673.html
Copyright © 2011-2022 走看看