作者APE36 (PT鄉民)
看板java
標題[問題] 認證書籍的問題
時間Wed Jun 17 12:22:35 2015
在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