java问题,高手进

package test;

public class Sub extends Super{
int j=30;
Sub(){
print();
j=40;
}
void print(){
System.out.println(j);
}
public static void main(String[] args){
System.out.println(new Sub().j);
}
}
class Super{
int i;
Super(){
print();
i=30;
}
void print(){
System.out.println(i);
}
}
输出是什么?为什么?

输出:0 30 40

main中执行语句:System.out.println(new Sub().j);//创建Sub对象,打印该对象内的一个变量:
创建对象时,java虚拟机首先执行父类的构造方法
然后执行子类的构造方法,这样可以保证子类对象从所有直接或者间接继承的实例变量都被正确的初始化。(总是先有父亲才能生出儿子的)
所以执行顺序是:
System.out.println(i);
System.out.println(j);
System.out.println(new Sub().j);
结果就是:0 30 40

另:
子类必须调用父类的构造方法.如果你不明试的调用,那么会自动调用父类无参的构造方法.
如果恰好父类没有无参的构造方法,就会报错
如果你不提供任何构造方法,就会有一个默认构造方法,是无参的.但是如果你写了构造方法,就没有默认构造方法了.
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-16
40,首先sub继承super,然后在里面定义变量j=30,然后在构造函数中重新对j进行赋值=40,然后print方法可以不看,然后在Main方法中调用sub方法,并且打印出sub方法的j的值,所以输出的是40

JAVA简单问题,高手进下帮帮忙,谢谢!
低 住 佐 佑 佒 体 占 何 佖 佗 佘 余 佚 佛 作 佝 佞 佟 你 佡 这是运行结果,解释:i是从20302开始循环,然后将其强转成char类型进行输出,由于你直接把int类型赋值给char类型,就相当于你把ASCII码直接赋值给了char类型,所以打印出来的是ASCII码所对应的汉字 ...

java问题,求各路高手齐来踊跃解答。。。我想知道正确答案啊
答案:JavaSE\\JavaME\\JavaEE 2、在Java中如何定义变量名?变量的作用是什么?答案:path:\\Java路径 3、定义变量分哪两个步骤?是否必须在Java程序的前面声明变量?答案:自己看书去,这是书上原话,字太多了,所以我就不打了 4、以下程序段的输出结果为___。for(i=0;i<5;i++){for(j=0;j<5;j...

java问题求解!!请高手帮忙啊!我是新手!!
1、新建系统变量JAVA_HOME变量(JAVA_HOME指明JDK安装路径。)设定值为:C:\\Java\\jdk1.6.0_04 2、在系统变量中的path中添加(Path使得系统可以在任何路径下识别java命令。):;%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin;%CATALINA_HOME%\\bin 3、新建系统变量CATALINA_HOME 设定值为:C:\\Java\\apache-t...

JAVA高手请进,关于命令“JAVA”编译器错误的问题
1、java.lang.ClassNotFoundException---这是关键,找不到类文件异常;2、首先你要明白谁负责解释.class文件?是jre的bin 和lib,你看你的path路径和classpath路径,是不是少了jre的这两个文件;3、写成这样的配置:PATH=%JAVA_HOME%\\bin; D:\\Program Files\\Java\\jre6 \\bin;CLASSPATH=.;%JAVA...

关于java的3道题目,请高手,老师进来帮一下
2,应该是在class前面加public,因为类中有主方法所以该类要声明为公共类。没有编译,应该是这个问题。3,public class Test2{ public int test(int x, float y){ return x+y;} public int test(){\/\/重载test方法 int x = 1;float y = 2.0;return x+(int)y;} public void main(Strong...

java题目,请高手帮忙解决。
从安全性的观点看,Java 应用程序所受的安全性限制与 iSeries 服务器上的任何其它程序相同。要在 iSeries 服务器上运行 Java 程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。 您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象。沿用...

JAVA习题,请高手帮忙解答一下,急急急
01.X 父类中私有的方法和字段不会被继承 02.O java类只能单继承和多实现 03.O Exception为所有异常的父类,所以,他包含所有的异常 04.X Class1类的方法可以访问 05.X 抽象类有构造方法,因为抽象类中有非抽象方法,可以被继承。06.X 如果父类中的构造方法没有要求参数,则可以省略super();07...

Java 本人初学Java遇到了一些问题,请求高手赐教!
解决方案一: 使用java 9以下的版本, 比如Java 8就不会看到这个提示了.(这是掩耳盗铃!!)解决方案二: 放弃使用java 编写 网页应用程序 . 使用HTML CSS JavaScript 学习建议: java图形界面学习建议; 放弃网页应用的技术,比如Applet或者JApplet; 但是要关注下java的桌面客户端技术 ,可以简单学习 awt,...

JAVA高手请进!!真的要是高手,答好了继续给分
我为你取的名字毕业设计名字叫做java版网络爬虫。如果觉得可以一试,或者对自己有那么点信心,那么请继续往下看!你的道具只可以是一些从sun或apache站下载的开源软件以及你喜欢的某一种数据库及其jdbc。只有两个提示:[怕你无从下手,所以给了两个提示]一、web容器一旦启动,你的”爬虫“就开始顺着某...

java一个小问题,高手请进!!!
不会呀,你说的010 020 什么的是存在list中的。e.getItem是返回你选中的是列表里的第几项。Item有索引的,你存的时候是有顺序的所以都对应好了,就是说item的索引和code索引还有name索引都是对应的相同的,所以可以在name中取出城市。

相似回答
大家正在搜