JSP/JAVA

          JAVA SERVER PAGES

          java類型強制轉換

          問題:
          class A{
          int sum;
          }
          class B extends A{
          double sum;
          public static void main(String args[]){
          A a=new A();
          B b=new B();
          b=(A)a;//異常?請教why?
          }
          }

          回答:


          形象一點說:
          class 人{
          int sum;
          }
          class 男人 extends 人{
          double sum;
          public static void main(String args[]){
          人 a=new 人();
          男人 b=new 男人();
          b=(男人)a;
          }
          }
          你能把“人”強制轉換成“男人”嗎??很顯然不能
          所謂“父類向子類轉換是強制轉換”是指這種情況
          A a=new B();
          B b=(B)a;
          此時a實際上是一個B的實例,但被定義為A,這樣就無法調用B中定義的方法,只有在強制轉換為B的實例后才能調用B中定義的方法——前提是:a是B的實例
          如果是
          A a=new A();
          B b=new B();
          b=(A)a;
          a本身是A的實例,不具有B的特征,不可能轉換為B的實例。
          這就像你不能
          Object obj=new Object();
          String str = (String)obj;

          posted on 2009-07-22 23:44 C雞雞 閱讀(962) 評論(0)  編輯  收藏 所屬分類: java


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          友情鏈接

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台江县| 普格县| 和林格尔县| 莱阳市| 额敏县| 南康市| 玉林市| 吴忠市| 平安县| 平凉市| 合川市| 昌都县| 桐庐县| 阳曲县| 恩施市| 扎兰屯市| 柞水县| 溧阳市| 阿荣旗| 三明市| 清镇市| 新竹县| 黑龙江省| 万载县| 香河县| 明水县| 无棣县| 贵州省| 通渭县| 中超| 布尔津县| 手游| 黎城县| 扎兰屯市| 连云港市| 桃江县| 宣城市| 常山县| 安新县| 涞源县| 府谷县|