| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1124 人关注过本帖
标题:输出结果
只看楼主 加入收藏
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 

我改成这样了,为什么他还是会输出零啊,是不是一定会输出零的啊??
abstract class Exam4 {
int j=3;
Exam4()
{
print();
{
System.out.println(j);
}
}
abstract void print();
}

public class Exam4Sub extends Exam4{
int i=1;
void print()
{
System.out.println(i);
}
public static void main(String[] args) {
Exam4Sub e=new Exam4Sub();
e.print();
}
}


JAVA是什么?我也不清楚......
2006-11-13 16:42
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
当然
除非你把子类的i去掉,子类的的print也去掉

可惜不是你,陪我到最后
2006-11-13 16:54
ljy123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-8-29
收藏
得分:0 
System.out.println(i);

你把这里改下System.out.print(i); println是有换行的
2006-11-13 22:28
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 
版主,能不能把整个过程说一下啊

JAVA是什么?我也不清楚......
2006-11-13 23:26
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 

abstract class Exam4 {
int j=3;
Exam4()
{
print();

}
abstract void print();{
System.out.println(j);
}
}

public class Exam4Sub extends Exam4{
int i=1;
void print()
{
System.out.println(i);
}
public static void main(String[] args) {
Exam4Sub e=new Exam4Sub();
e.print();
}
}
这个程序输出的为什么是3,0,1


JAVA是什么?我也不清楚......
2006-11-14 00:39
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
i和j不一样

可惜不是你,陪我到最后
2006-11-14 09:17
WestNet
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-10-31
收藏
得分:0 
首先继承父类,在父类中你用了System.out.println(j),所以输出3
再次子类定义父类的抽象类,System.out.println(i),但是这时候Exam4Sub()还没有实例化,所以i值初始化为0
最后Exam4Sub e=new Exam4Sub()实例化对象,i值为1,所以输出1

不灰心等待,痛苦也忍耐。
2006-11-14 09:49
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 
或许你说得很明白,可是我还是不懂啊?能不能说一下原理啊,谢谢

JAVA是什么?我也不清楚......
2006-11-14 12:15
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
WestNet已经说得很清楚了,还不懂话,就没有办法了
你首先要清楚JAVA类的初始化顺序

可惜不是你,陪我到最后
2006-11-14 13:01
食恶不色
Rank: 2
等 级:新手上路
威 望:3
帖 子:632
专家分:5
注 册:2006-11-8
收藏
得分:0 
顺序是这样的:
1.首先继承父类,在父类中你用了System.out.println(j),所以输出3
2.在你的Exam4Sub 还没有实例化时!System.out.println(i);所以输出0
3.在你new Exam4Sub();的时候!i比赋值为1,System.out.println(i);所以输出1

做人要厚道,看帖要回帖!回帖是尊重,回帖是美德! 美德要发扬,我们要顶帖!顶帖是好事,千万莫灌水!
2006-11-14 19:06
快速回复:输出结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012289 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved