站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题父类与自类调用顺序问题?

父类与自类调用顺序问题?

摘要: 父类与自类调用顺序问题?


父类:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
}
}


输出结果是:
FatherClass Create
FatherClass Create

请问构造器的调用顺序是怎样的?



不会吧,应该就一个FatherClass Create
哪来的两个啊?


FatherClass fc = new ChildClass();
display result in console should be following:
FatherClass Create
ChildClass Create



你那里会输出两次“FatherClass Create”??

没搞错吧

你这里
FatherClass fc = new FatherClass();
fc就是FatherClass的实例,当然调用父类构造函数了


TO xzx520soft():
FatherClass fc = new FatherClass();
是不是你的本意?



请问构造器的调用顺序是怎样的?

-----------------------
去看java编程思想


我把你的程序放在了一个文件里面,在当前路径下编译运行,不创建任何包,结果为打印了一个FatherClass Create,也就是你父类的构造方法。你在创建对象的时候就是调用的父类构造方法,子类并没有调用,如果你把子类作为你运行时的对象,那么程序在运行时则会先构造父类的构造方法,然后再构造子类的,结果为rintlnFatherClass Create ChildClass Create

public class Test{
public static void main(String[] args){
FatherClass fc = new FatherClass();
}
}

class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
//子类:
//package test;
//import test.FatherClass;
class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
}



是先调用从父类继承的构造器,然后调用自己的构造器。谢谢stonejiang()的详解,给分!!!
但不知道有没有根据?


↑返回目录
前一篇: 在java中如何在一个类中使用另一个类中的paint()方法?
后一篇: 象ie浏览器似的,窗口只有最小化,最大化和关闭 按钮.能在主窗口打开一个固定的网页