博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20130409和陈讨论面试题
阅读量:5314 次
发布时间:2019-06-14

本文共 759 字,大约阅读时间需要 2 分钟。

   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)。 第二步:将值类型的实例字段拷贝到新分配的内存中。 第三步:返回托管堆中新分配对象的地址。这个地址就是一个指向对象的引用了。

 

转载于:https://www.cnblogs.com/xjt360/archive/2013/04/09/3009673.html

你可能感兴趣的文章
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>
HTTP状态码
查看>>
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>
MongoDB-CRUD
查看>>
javaagent 简介
查看>>
python升级安装后的yum的修复
查看>>
Vim配置Node.js开发工具
查看>>
web前端面试题2017
查看>>
ELMAH——可插拔错误日志工具
查看>>
MySQL学习笔记(四)
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
两数和
查看>>