[問題] 認證書籍的問題

看板java作者 (PT鄉民)時間10年前 (2015/06/17 12:22), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
在Java 語言程式執行後輸出結果? import java.lang.*; class A { public static int x=0; public A(){ x++; } public void fun(){ x++; }; } class B extends A { public B(){ super(); x--;} public void fun(){ x--; }; } class test { public static void main (String[] argv) { B b=new B(); fun(b); System.out.println(b.x); } public static void fun(A y) { y.fun(); } } 請問關於Trace的結果為何不是1,反而最終結果是-1呢? 他最後不是fun(b)是執行A class y.fun()內的指令? 請益一下Trace過程!!感謝 -- Q:高雄市的飆車族到底多不多?      A:飆車族不多阿,只有一兩台,前面五十台是不敢停下來,怕被砍 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.122.81 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1434514958.A.A31.html

06/17 14:00, , 1F
可以看一下 多型(polymorphism) 會有比較完整的認識
06/17 14:00, 1F

06/17 14:20, , 2F
你把每個方法裡面都print~就知道執行的順序拉
06/17 14:20, 2F

06/17 16:24, , 3F
這題解釋物件生成順序跟繼承呼叫順序
06/17 16:24, 3F

06/18 08:58, , 4F
傳進去的instance是b
06/18 08:58, 4F
文章代碼(AID): #1LWFOEen (java)
文章代碼(AID): #1LWFOEen (java)