冷面閻羅

          低調做人&&高調做事
          隨筆 - 208, 文章 - 3, 評論 - 593, 引用 - 0
          數據加載中……

          今天面試的時候,發現已題來面試的大多沒答對

                   公司因業務擴展,需要擴大隊伍,再這里也做一下廣告,歡迎大家都來,我們單位不錯,2006年年度最佳雇主的單位,不過招人是福建本地。
                 其實這道題不難,只是一個多態的問題,這也是面向對象語言中的比較重要的一點(我個人認為),題目是這樣
          public class A {
           
          public A () {
              System.out.println(
          "A");

          }

              
          int a = 1;
           
          double d=2.0;
              
          void show() {
                   System.out.println(
          "Class A: a="+a+"\tb="+d);
              }

          }
          public class B extends A {
           
          public B(){
               System.out.println(
          "B");
           }

              
          float a = 3.0f;

              String d 
          = "java prog";

              
          void show() {
                  
          //super.show();
                  System.out.println("CLoas b=" + a + "\td=" + d);
              }

          }

          問在main方法中,這樣定義輸出是什么?
                  A b=new B();
                  System.out.println(b.a);
                  b.show();
               其實就是的子與父的關系,你能答的出來么?不要想的太復雜了
             

          posted on 2007-05-16 18:36 冷面閻羅 閱讀(1098) 評論(10)  編輯  收藏 所屬分類: java

          評論

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          2006年年度最佳雇主的單位?閻羅大哥是哪里的?
          2007-05-17 10:37 | 久城

          # re: 今天面試的時候,發現已題來面試的大多沒答對[未登錄]  回復  更多評論   

          這是一個JAVA繼承的問題,不能說是多態
          2007-05-17 13:34 | 小兵

          # re: 今天面試的時候,發現已題來面試的大多沒答對[未登錄]  回復  更多評論   

          呵呵,是我看錯了,應該的多態
          生成的對像是父類的,調用的屬性應該也是A父類的a,但是方法進行了重定,應該調用B類的方法
          2007-05-17 13:51 | 小兵

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          不明白為何b.a=1
          2007-05-17 13:52 | leekiang

          # re: 今天面試的時候,發現已題來面試的大多沒答對[未登錄]  回復  更多評論   

          public class B extends A {
          public B(){
          System.out.println("B");
          }
          int a = 3;
          int c = 4;//添加一個c屬性
          String d = "java prog";

          public void a() {
          //super.show();
          System.out.println("CLoas b=" + a + "\td=" + d);
          }
          public static void main(String[] ares){
          A b=new B();
          System.out.println(b.c);//實例b是沒有這個屬性的
          b.show();
          }
          }

          A b = new B(); 這條語句,實際上有三個過程:
          (1) A b;
          將b聲明為父類對象,只是一個引用,未分配空間
          (2) B temp = new B();
          通過B類的構造函數建立了一個B類對象的實例,也就是初始化
          (3) a = (A)temp;
          將子類對象temp轉換未父類對象并賦給b,這就是上傳(upcast),是安全的。
          經過以上3個過程,b就徹底成為了一個A類的實例。
          子類往往比父類有更多的屬性和方法,上傳只是舍棄,是安全的;而下傳(downcast)有時會增加,通常是不安全的,不過上傳會重寫A的方法,多態的特性。

          2007-05-17 14:17 | 小兵

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          運行結果
          A
          B
          1
          CLoas b=3.0 d=java prog

          子類的無參構造方法首先調用父類無參構造方法,
          輸出A
          B
          父類的屬性不能被子類覆蓋,而父類的方法可以被子類覆蓋,因此b.a輸出的是父類的屬性,而b.show()調用的則是子類的方法。
          2007-05-17 17:59 | 我為J狂

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          呵呵,閻羅大哥是東軟的吧?不知道是哪個項目組的?小弟是福建網通項目組的,明天就要調去貴陽一年了.
          2007-05-26 22:46 | chesh

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          呵呵 彼此彼此。
          可惜啊 你要去貴陽了
          2007-05-27 11:42 | 冷面閻羅

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          我也是DR的
          2007-06-07 15:45 | apai

          # re: 今天面試的時候,發現已題來面試的大多沒答對  回復  更多評論   

          東軟 哈哈 適合應屆生鍛煉一年和老員工養老的地方的單位 工資低 活累 國內項目還要現場開發,當驢使! 哈哈 還是最佳雇主單位 是不是因為東軟軟件民工多 選票多啊!
          2007-08-13 14:59 | 草兒
          主站蜘蛛池模板: 阆中市| 姜堰市| 监利县| 甘孜县| 从江县| 沛县| 图木舒克市| 天门市| 连江县| 桐柏县| 凤山县| 夹江县| 江陵县| 察哈| 镇坪县| 华宁县| 青阳县| 神池县| 社会| 平利县| 青州市| 林口县| 海淀区| 凤冈县| 西城区| 镇平县| 拉孜县| 义乌市| 华亭县| 四子王旗| 宣汉县| 襄垣县| 驻马店市| 马边| 昌图县| 婺源县| 页游| 西平县| 荥经县| 沭阳县| 黄骅市|