没有学到分层 只是根据结果来注释 具体如下/*
class X {
Y b = new Y(); //分析 类Y与类X是平级,所以按从上往下执行
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
//Y y = new Y(); //分析 类Z与类Y 由于类Z是属于X的子类 所以优先对Z类进行初始化,先对父类进行初始化,再执行Y类 最后执行Z类的输出语句
Z() {
//super
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
输出结果:YXZ
*/
/*class X {
//Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
//Y y = new Y();
Z() {
//super
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
输出结果为:XZ
*/
/*
class X {
//Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
//super
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
输出结果为:XYZ
*/
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
//super
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
/* 输出结果为 YXYZ */
|
|