class Parent {
private String name = setName();
private static Parent p = new Parent("父类");
public Parent() {
}
public Parent(String name) {
System.out.println("父类构造器");
this.name = name;
}
/**
* @return
*/
protected String setName() {
System.out.println("父类非static变量进行赋值");
return "aaa";
}
static {
p = new Parent("ghl");
System.out.println("父类static");
}
public void getName() {
System.out.println(name);
}
public void eat() {
System.out.println("父类方法");
}
}
class Child extends Parent{
private String name = setName();
private static Child c = new Child("子类");
public Child() {
}
public Child(String name) {
super(name);
System.out.println("子类构造器");
this.name = name;
}
protected String setName() {
System.out.println("子类非static变量进行赋值");
return "bbb";
}
static {
System.out.println("子类static");
}
public void getName() {
System.out.println(name);
}
public void eat() {
System.out.println("子类方法");
}
public static void main(String[] args) {
Child c = new Child();
}
}
运行结果:
父类非static变量进行赋值
父类构造器
父类非static变量进行赋值
父类构造器
父类static
子类非static变量进行赋值
父类构造器
子类非static变量进行赋值
子类构造器
子类static
子类非static变量进行赋值
子类非static变量进行赋值