class X {
Y b = new Y(); --------------------------------------2
X() {
System.out.print("X"); -----------------------4
}
}
class Y {
Y() {
System.out.print("Y"); ---------------------------------3
}
}
public class Z extends X {
Y y = new Y(); -----------------------------------------5
Z() {
System.out.print("Z");---------------------6
}
public static void main(String[] args) {
new Z(); ------------------------------1 执行它的时候发现它继承了x 所以先执行x
}
} 作者: 黄丽慧 时间: 2012-7-2 23:18
class X {
Y b = new Y();//创建Y对象,调用Y的构造函数,打印Y
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {//Z继承X,在Z的第一行隐藏了super();而该方法会自动调用父类函数中的构造方法,而X中先调用了Y的构造方法,再调用自己的构造方法,因此创建Z对象后,在执行Y y = new Y()之前就打印出YX
Y y = new Y();//在调用Z的构造方法之前,先创建Y类的对象,先调用构造函数Y(),打印出Y
Z() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();、、//创建Z对象时先调用父类中的构造方法,打印出YX,紧接着调用到Z中的构造方法打印出YZ
}
} 作者: 田向向 时间: 2012-7-2 23:27
class X {
//在 x类中 实例化y 对象。
Y b = new Y();
X() {// x 类的 无参构造方法 默认执行
System.out.print("X");
}
}
class Y {
Y() {// y 类的 无参构造方法 默认执行
System.out.print("Y");
}
}
public class Z extends X {// z类 继承 x 类 中的 方法 属性。
Y y = new Y();//实例化 y 对象 在调用Z的构造方法之前,先创建Y类的对象,先调用构造函数Y(),打印出Y
Z() {// z 类的 无参构造方法 默认执行
System.out.print("Z");
}
public static void main(String[] args) {
new Z();//创建Z对象时先调用父类中的构造方法,打印出YX,紧接着调用到Z中的构造方法打印出YZ
}
} 作者: 夏儒日 时间: 2012-7-2 23:42
class X
{
Y b = new Y();//3.执行该语句,加载类Y,输出Y
X()
{
System.out.print("X");//4.执行父类构造函数,输出X
}
}
class Y
{
Y()
{
System.out.print("Y");
}
}
public class Z extends X
{
Y y = new Y();//5.加载完父类构造函数,开始执行子类中的语句.此语句又加载类Y,打印Y
Z()
{
System.out.print("Z");//6.最后执行子类构造函数,打印Z
}
public static void main(String[] args)//1.程序入口:main函数
{
new Z();//2.new一个Z类的对象,发现函数继承类X,加载X类
}
}
不知道是不是这么个执行顺序,请大神指点!!!!作者: 赵庆礼 时间: 2012-7-2 23:43
class X {
Y b = new Y();
X() {
System.out.println("X");
}
}
class Y {
Y() {
System.out.println("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
System.out.println("Z");
}
public static void main(String[] args) {
new Z();//1、创建z对象时,先调用父类X中的构造方法,先执行类X中的Y y=newY();打印出Y,再打印出X
//2、紧接着执行Z中的构造方法,先执行Z中的Y y = new Y(),打印出Y,在打印Z。所以打印出来的顺心就是YXYZ
}
} 作者: 夏儒日 时间: 2012-7-2 23:47
蒋映辉 发表于 2012-7-2 23:14
class X {
Y b = new Y();----------------------------------------------4 执行它 并输出它的构 ...
了解了,谢谢版主哈!!!感觉我们初学者很多问题看得比较模糊..所以很多细节比较难滤清.....多谢版主哈~~~:handshake作者: 周朋飞 时间: 2012-7-3 00:12
class X {
Y b = new Y();//1.首先会进来这里,为什么,因为z继承了X在调用自己的构造函数的时候会先调用父类的 然后会调用Y的构造函数打印出Y