主题:一条把我搞残的题,各位请进,帮帮我!!
天将景士
[专家分:0] 发布于 2011-04-01 12:28:00
.题如下:
classA{
private int a=1;
}
class B extends A{
private int b=2;
}
public class C extends B{
private int c=3;
public static void main(String[] args){
new C();
}
}
其中,每个类都要进行自动初始化,指定初始化,调用构造器进行初始化,请问:这三个类的三个初始化的顺序是怎样的?最好能写出理由!!!先谢过!!
回复列表 (共10个回复)
沙发
pinksuper [专家分:0] 发布于 2011-05-10 14:14:00
我是java新手,不是很能理解你说的题目意思,下面的回答是我自己的理解:
创建一个子类对象的同时会创建父类对象,从构造方法来看就是子类的构造方法会调用父类的构造方法,子类对象通过super关键字来调用父类的构造方法。当一个子类构造方法没有显示使用super关键字去调用父类的某个构造方法时,编译器会在默认的子类构造方法中添加super(),并且这个命令必须在子类构造方法的第一行,也就是会首先调用父类中没有参数的构造方法。所以如果要创建一个B类的实例时,会首先调用A类的构造方法,创建C类时,会先调用B类的构造方法,而B类又会调用A类的构造方法。所以new C(),首先调用的是A类的构造方法,然后调用B类的构造方法,最后再调用C类的构造方法。
不知道这样的回答对不对啊,希望对你有帮助~~~
板凳
绿林汉子 [专家分:0] 发布于 2011-05-14 15:26:00
能解答的就不算新手了。佩服!
3 楼
zhiguan [专家分:0] 发布于 2011-05-16 19:42:00
飘过~~~
4 楼
cql159357 [专家分:0] 发布于 2011-07-05 15:54:00
[quote]我是java新手,不是很能理解你说的题目意思,下面的回答是我自己的理解:
创建一个子类对象的同时会创建父类对象,从构造方法来看就是子类的构造方法会调用父类的构造方法,子类对象通过super关键字来调用父类的构造方法。当一个子类构造方法没有显示使用super关键字去调用父类的某个构造方法时,编译器会在默认的子类构造方法中添加super(),并且这个命令必须在子类构造方法的第一行,也就是会首先调用父类中没有参数的构造方法。所以如果要创建一个B类的实例时,会首先调用A类的构造方法,创建C类时,会先调用B类的构造方法,而B类又会调用A类的构造方法。所以new C(),首先调用的是A类的构造方法,然后调用B类的构造方法,最后再调用C类的构造方法。
不知道这样的回答对不对啊,希望对你有帮助~~~[/quote]
同意此看点
5 楼
qh-100 [专家分:0] 发布于 2011-07-06 22:27:00
同意上述两位观点,运行debug一下,看看顺序
6 楼
yinnan2525 [专家分:0] 发布于 2011-08-18 12:02:00
建议继承一个父类 需要属性再在Class 添加,不要多个继承~~那样下面出现点小故障容易乱~~而且需要改的也太多了
7 楼
cailiang12 [专家分:170] 发布于 2011-08-22 15:25:00
class A {
private int a = 1;
public A(){
System.out.println("a");
}
}
class B extends A {
private int b = 2;
public B(){
System.out.println("b");
}
}
public class C extends B {
private int c = 3;
public C(){
System.out.println("c");
}
public static void main(String[] args) {
new C();
}
}
8 楼
nuciewth [专家分:670] 发布于 2011-08-24 08:39:00
先父类构造再子类构造。
9 楼
chenge [专家分:0] 发布于 2011-09-01 17:06:00
从父类开始实例化,一次类推
_________________________________________________________
新建的java超级群,有兴趣的可以加一下,大牛小虾汇聚一堂! 哈哈!
共享有很多资料,可以供高手进阶,新手学习!
名字:In'8 技术联盟[精英]
群号:93133286
10 楼
649873682 [专家分:0] 发布于 2011-11-17 14:19:00
这人气真旺啊,不过初始化什么意思?
我来回复