(面试)涉及到继承和类加载
有A,B,Main三个类如下:
public class A
{
A()
{
System.out.println("A");
}
}
public class B extends A
{
B()
{
System.out.println("B");
}
}
public class Main extends B
{
Main()
{
System.out.println("Main");
}
private A a = new A();
private B b = new B();
public static void main(String[] args)
{
System.out.println("test");
}
}
输出:
test ----解释:main方法是静态方法,它属于类Main,而不是实例,因此Main不用实例化,直接调用
如果将main方法改为:
public static void main(String[] args)
{
System.out.println("test");
new Main(); //实例化对象Main
}
输出:
test
A -----初始化父类A
B -----初始化父类B
A -----初始化属性 private A a = new A();
A -----初始化属性 private B b = new B();
B
Main ---- 调用构造函数