黑马程序员技术交流社区
标题:
程序运行结果的疑问
[打印本页]
作者:
Nathan矫立伟
时间:
2014-6-13 23:34
标题:
程序运行结果的疑问
class Super
{
int i=0;
public Super(String a)
{
System.out.println("A");
i=1;
}
public Super()
{
System.out.println("B");
i+=2;
}
}
class Demo extends Super
{
public Demo(String a)
{
System.out.println("C");
i=5;
}
public static void main(String[] args)
{
int i=4;
Super d=new Demo("A");
System.out.println(d.i);
}
}
复制代码
答案是
B
C
5
不明白的是为什么d.i会是5
作者:
不死不休眠
时间:
2014-6-13 23:53
我新人啦,回帖赚币
作者:
liujie445012100
时间:
2014-6-13 23:55
你Demo对象初始化的是时候执行了构造方法,i=5,
int i=4这句话只是声明了一个变量,你System.out.println(i);这个时候绝对等于4
作者:
杨桦
时间:
2014-6-14 00:51
建立一个b对象,b.i用于获取子类中带有一个参数的构造函数的变量值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2