您的位置:首页 > 职场人生

面试题之父类和子类执行顺序部分

2016-08-31 17:56 204 查看
class parent
{
private static String name=method2();

public parent() {
System.out.println("构造1");
}

static{
System.out.println("static 1");
}

public void method1()
{
System.out.println("i am parent method!");
}

public static String method2()
{
System.out.println("i am parent static method!");
return "parent";
}
}

class child extends parent
{
static{
System.out.println("static 2");
}

private static String name=method2();

public child() {
System.out.println("构造2");
}

public void method1()
{
System.out.println("i am child method!");
}

public static String method2()
{
System.out.println("i am child static method!");
return "child";
}
}
public class TestParentAndChild {

public static void main(String[] args) {
parent parent=new parent();
child child=new child();
child.method1();
}

}

运行结果:

 i am parent static method!

static 1

构造1

static 2

i am child static method!

构造1

构造2

i am child method!

parent parent=new parent() 首先加载父类,静态方法按照顺序加载,所以是   i am parent static method!       static 1   最后才是构造函数
child child=new child();类只加载一次,所以这个时候直接去加载子类就可以了  static 2   i am child static method!
此时这个构造还会执行一次父类构造函数,然后才是子类构造函数

child.method1();最后调用这个子类对象的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试题