看板 java 關於我們 聯絡資訊
在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
omidofor: 可以看一下 多型(polymorphism) 會有比較完整的認識 06/17 14:00
swpoker: 你把每個方法裡面都print~就知道執行的順序拉 06/17 14:20
swpoker: 這題解釋物件生成順序跟繼承呼叫順序 06/17 16:24
kurakidream: 傳進去的instance是b 06/18 08:58