1个回答
2015-04-09
展开全部
这个很简单,写一下看看就知道了。
package Test.test;
/**
* 测试构造函数的调用顺序,为了能够看清楚顺序,所以每个类的构造函数中都写了一句输出
* @author mrzhou@miw.cn
* 2013-6-16 上午9:49:36
*/
public class Test {
public static void main(String[] args) {
new C();
}
static public class A {
public A() {
System.out.println("A inited");
}
}
static public class B extends A {
public B() {
super();
new D();//在B中初始化D
System.out.println("B inited");
}
}
static public class C extends B {
public C() {
super();
System.out.println("C inited.");
}
}
static public class D {
public D() {
System.out.println("D inited");
}
}
}
输出结果为:
A inited
D inited
B inited
C inited.
这就是顺序啦。
package Test.test;
/**
* 测试构造函数的调用顺序,为了能够看清楚顺序,所以每个类的构造函数中都写了一句输出
* @author mrzhou@miw.cn
* 2013-6-16 上午9:49:36
*/
public class Test {
public static void main(String[] args) {
new C();
}
static public class A {
public A() {
System.out.println("A inited");
}
}
static public class B extends A {
public B() {
super();
new D();//在B中初始化D
System.out.println("B inited");
}
}
static public class C extends B {
public C() {
super();
System.out.println("C inited.");
}
}
static public class D {
public D() {
System.out.println("D inited");
}
}
}
输出结果为:
A inited
D inited
B inited
C inited.
这就是顺序啦。
追问
我说的这3个类之间没有继承的关系,而且不是静态的类,就是把对象设为静态的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询