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雞雞 閱讀(963) 評論(0)  編輯  收藏 所屬分類: java


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


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          友情鏈接

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 揭东县| 泸州市| 抚宁县| 新昌县| 毕节市| 枞阳县| 周口市| 白银市| 海林市| 莱州市| 河源市| 博爱县| 深圳市| 武宁县| 睢宁县| 伊宁市| 东城区| 奇台县| 洛南县| 宜黄县| 昌黎县| 延川县| 张家港市| 延寿县| 凤山市| 郓城县| 正安县| 山东省| 贵州省| 方山县| 新乡市| 扶绥县| 乐都县| 沙田区| 开鲁县| 兴隆县| 微博| 丰县| 曲阳县| 桃园县| 南华县|