作者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://webptt.com/cn.aspx?n=bbs/java/M.1434514958.A.A31.html
1F:推 omidofor: 可以看一下 多型(polymorphism) 会有比较完整的认识 06/17 14:00
2F:→ swpoker: 你把每个方法里面都print~就知道执行的顺序拉 06/17 14:20
3F:→ swpoker: 这题解释物件生成顺序跟继承呼叫顺序 06/17 16:24
4F:→ kurakidream: 传进去的instance是b 06/18 08:58