美文网首页
C# 装箱,拆箱,向上转型,向下转型

C# 装箱,拆箱,向上转型,向下转型

作者: 混世小码农 | 来源:发表于2019-03-07 13:05 被阅读0次

     c#中,数据类型分为值类型和引用类型,装箱和拆箱属于值类型和引用类型间的转换操作。

       装箱:值类型向引用类型转换时发生, 当 CLR 对值类型进行装箱时,会将该值包装到 System.Object 内部,再将后者存储在托管堆上。

       拆箱:从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。拆箱操作包括: 

      (1)检查对象实例,以确保它是给定值类型的装箱值。 

       (2)将该值从实例复制到值类型变量中

       向上转型:将子类对象转为父类对象,父类对象可以是接口。转化后的对象具有父类的所有方法,当该方法被子类重写时,具有的是被子类重写过的方法。若父类对象是接口或者抽象类,调用方法时,自动找到子类同名方法,执行子类同名方法。向上转换时安全的。如下图1:

图1

        向下转型:把父类对象转为子类对象,转化后的子类对象,跟一般的继承子类对象一样。具有子类所有方法(包括重写方法)+父类所有方法(被重写的方法,按重写的算。)向下转型属于不安全转型,使用转型对象时,需要先判断转型是否成功。其转型的约束条件为:该对象进行过向上转型,并把它转换为原来的类。如下图2:

图2

相关文章

  • C# 装箱,拆箱,向上转型,向下转型

    c#中,数据类型分为值类型和引用类型,装箱和拆箱属于值类型和引用类型间的转换操作。 装箱:值类型向引用类...

  • 12.多态中的向上转型和向下转型

    多态中向上转型与向下转型 多态的转型分为向上转型与向下转型两种: A:向上转型:当有子类对象赋值给一个父类引用时,...

  • java多态(重要O!)

    一、多态的语法 关于java语言中的向上转型和向下转型 1、向上转型(upcasting):子 -->父 2、向下...

  • 向上转型&向下转型

    向上转型也称为隐式转型或者自动转型父类引用指向子类实例,可以调用子类重写父类的方法以及父类派生的方法,无法调用子类...

  • 多态

    Java语言中的向上转型和向下转型, 1向上转型 (upcasting)子———>父 自动类型转换 2 ...

  • 12.对象的转型

    1.向上转型 2.向下转型 什么是向上转型? 向上转型------将子类的对象赋值给父类的引用 Student s...

  • JAVA:向下转型和instanceof运算符的应用

    知识梳理 一:向下转型 1.向下转型:向下转型是与向上转型相对的概念,他是用子类引用指向父类实例.如: 这时就告诉...

  • C# 泛型委托的 逆变与协变

    先说两个引子 1,类型的向上转型和向下转型 Animal类型 转为 Dog 类型为向下转型,反之。 2,泛型的转型...

  • 4.5dynamic_cast操作符

    向上转型:指用派生类指针指向基类对象 向下转型:指将基类指针指向派生类对象 向下转型不会有任何问题,而向上转型默认...

  • JavaSE之多态

    转型:向上转型(上溯造型)、向下转型(下溯造型) 向上转型:父类引用指向子类对象。 父类的引用 = 子类的对象(也...

网友评论

      本文标题:C# 装箱,拆箱,向上转型,向下转型

      本文链接:https://www.haomeiwen.com/subject/sqqeeftx.html