为了省事代码都放在一起了 :
class Person
{
int i = a();
int j = b();
static {
System.out.println("静态代码块");
}
{
System.out.println("空白代码块");
}
public Person(){
System.out.println("Person类的无参构造方法");
}
public Person(String name){
System.out.println("Person类有参构造方法");
}
public int a(){
System.out.println("方法初始化属性");
return 30 ;
}
public static int b(){
System.out.println("静态方法初始化属性");
return 30 ;
}
}
class Student extends Person
{
private String name ;
private int age =age();
public Student(){
System.out.println("Student类的无参构造方法");
}
public Student(String name){
this.name = name ;
System.out.println("Student类的有参构造方法");
}
public int age(){
System.out.println("Student类方法的初始化属性");
return 11;
}
}
class TestTurn
{
public static void main(String[] args)
{
Student s = new Student("张三");
}
}
执行结果:
E:\learning\testjava>java TestTurn
静态代码块
方法初始化属性
静态方法初始化属性
空白代码块
Person类的无参构造方法
Student类方法的初始化属性
Student类的有参构造方法