zoukankan      html  css  js  c++  java
  • Java上转型和下转型

    Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。

    什么叫父类引用指向子类对象,且听我慢慢道来.

    从2个名词开始说起:向上转型(upcasting) 、向下转型(downcasting).

    举个例子:有2个类,Father是父类,Son类继承自Father。

    Father f1 = new Son();   // 这就叫 upcasting (向上转型)

    // 现在f1引用指向一个Son对象

    Son s1 = (Son)f1;   // 这就叫 downcasting (向下转型)

    // 现在f1还是指向Son对象

    第2个例子:

    Father f2 = new Father();

    Son s2 = (Son)f2;       // 出错,子类引用不能指向父类对象

    你或许会问,第1个例子中:Son s1 = (Son)f1;问什么 是正确的呢。

    很简单因为f1指向一个子类对象,Father f1 = new Son(); 子类s1引用当然可以指向子类对象了。

    而f2 被传给了一个Father对象,Father f2 = new Father();子类s1引用不能指向父类对象。

    总结:

    1。父类引用指向子类对象,而子类引用不能指向父类对象。

    2。把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转换。

          如:Father f1 = new Son();

    3。把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转换。

       如:f1 就是一个指向子类对象的父类引用。把f1赋给子类引用s1即 Son s1 = (Son)f1;

               其中f1前面的(Son)必须加上,进行强制转换。

  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/wwlww/p/8410168.html
Copyright © 2011-2022 走看看