class MobbliePhone
   {
       public void Test()
       {
           Console.WriteLine("我是手机");
           Console.ReadLine();
       }
   }
   class Iphone : MobbliePhone
   {
       public void Test2()
       {
           Console.WriteLine("我是苹果");
           Console.ReadLine();
       }
   }
   class Nokia : MobbliePhone
   {
       public void Test3()
       {
           Console.WriteLine("我是诺基亚");
           Console.ReadLine();
       }
   }
   class Program
   {
       static void Main(string[] args)
       {
           Nokia[] nokia = new Nokia[2];
           //nokia[0] =new Iphone();  这是行不通的,因为同为子类的两个类型不同
          //所以需要用上向上转换
           MobbliePhone[] mobbliephone = new MobbliePhone[2];
           mobbliephone[0] = new Nokia();
           mobbliephone[1] = new Iphone();
           //因为mobhliephone是MobbliePhone类型的一个引用,不论他指向哪个对象,都只能调用MobbilePhone里的方法
           mobbliephone[0].Test(); //这样可以
           //mobhliephone[0].Test3(); 这样就不行,尽管它指向了Nokia而且你知道他是个Nokia类型。
           //这是需要用上向下转换,用as关键字可以做到这点
           if (mobbliephone[0] is Nokia)//用is关键字判断指向的对象是否是Nokia
           {
               Nokia lumia520 = mobbliephone[0] as Nokia; //用as关键字来完成向下转换
               lumia520.Test3();
                
           }
       }
   }

转载于:https://www.cnblogs.com/AndyBlue/p/3222381.html

学习日记-类继承中的上下转换相关推荐

  1. C# 类型运算符重载在类继承中的调用测试

    C# 类型运算符重载在类继承中的调用测试 这是一篇晦涩难懂的片面的研究 一,简单的继承层次 class CA {}class CB : CA{}class CC : CB{}}void Test(CA ...

  2. C++知识点47——类继承中的类型转换与访问权限控制(下)

    接上一篇文章https://blog.csdn.net/Master_Cui/article/details/109768311 五.派生类向基类转换的可访问性 当一个子类向基类转化时:有以下三条规则 ...

  3. 【python】类继承中super的用法

    阅读本文,需要知道python中的类与继承的概念. 1.总述 在python中,通过类的继承机制,可以实现在子类中调用父类的方法,从而避免写重复的代码.但在面临多继承时,如果多个父类中都实现了某个相同 ...

  4. python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...

    第8.3节Python类的__init__方法深入剖析:构造方法与继承详解 一.    引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没 ...

  5. 类继承中的构造函数与析构函数

    构造函数初始化列表 子类的初始化列表,只能对子类的成员变量进行初始化 class Base{ public:int x; };class Derived : public Base { public: ...

  6. C++知识点46——类继承中的类型转换与访问权限控制(中)

    接上一篇文章https://blog.csdn.net/Master_Cui/article/details/109741735 四.public继承.protected继承和private继承 子类 ...

  7. C++知识点45——类继承中的类型转换与访问权限控制(上)

    一.类的继承与类型转换 1.概述 一般情况,如果想把一个类的指针或引用绑定到另外一个对象上,需要指针或者引用的类型与指向对象一致.但是存在继承关系的类是个例外:可以将基类的指针或者引用指向子类 原因是 ...

  8. python中find函数的使用方法_Python学习日记5|BeautifulSoup中find和find_all的用法

    今天是4.20号. 前天晚上看到蒋方舟的一句话: 不要左顾右盼.慢慢积累,慢慢写吧.毕竟除了这样单调的努力,我什么也做不了. 而现在的自己就是个十足的壁花少年. 在进入正题前先说一下每次完成代码后,可 ...

  9. 统计学学习日记:L3-集中趋势分析之平均数

    目录 一.平均数 二.算术平均数 三.加权平均数 四.几何平均数 一.平均数 1.也称为均值 2.集中趋势的最常用测度值 3.一组数据的均衡点所在 4.体现了数据的必然性特征 5.易受极端值的影响 6 ...

最新文章

  1. kong api gateway 初体验
  2. Eclipse打JAR包,插件FatJar安装与使用
  3. 把 分数化为循环小数 和 把循环小数化为分数 的方法
  4. 北邮OJ 2016网预 - Saber's Conjecture
  5. 注意满足循环终止条件时counter是否仍在+1(记洛谷P1035WA的经历,Java语言描述)
  6. 【Kafka】kafka NotLeaderForPartitionException thisserver is not the leader for topic-partition
  7. CGLI 报错 :VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit
  8. java JVM剖析
  9. android javap命令生成自定义类签名
  10. 如何断点调试Tomcat源码
  11. P4213 【模板】杜教筛(杜教筛)题解
  12. 基于Springboot+Vue.js的校园二手商城
  13. 华为JAVA编程规范
  14. python 管道游戏_用Python做flybird游戏
  15. juniper防火墙基于路由的IPsec ***配置
  16. C++ OpenCV相机标定---实心圆点、棋盘格
  17. Flutter之常用组件的使用举例(中)
  18. 不看后悔!阿里内部技术参考图册算法篇!(附网盘链接)
  19. vivo手机删除自带程序方法
  20. (二)进程管理之进程状态及组织方式

热门文章

  1. [javascript] Date 时间精确到天
  2. linux decode函数,Oracle 中 decode 函数用法
  3. oracle三种删除的区别,三种批量删除PLSQL写法效率的比对
  4. android按下enter键如何让光标跳到下一个edittext,我们如何知道光标已经移动到edittext的下一行android...
  5. java线程实例题_java线程相关试题实例源码代码
  6. 新手学java_新手如何学习Java
  7. dederss.php美国与,Dede经验:全站rss/连载和分类首页模板替换
  8. arcgis 圈选获取图层下点位_ArcGIS小技巧——提取面要素的质心点
  9. mysql时间格式函数_MySQL时间格式函数
  10. 微服务中为什么需要服务发现?