当前页面: 开发资料首页 → 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()的详解,给分!!!
但不知道有没有根据?