Java中父类方法与子类方法的执行顺序
程序员文章站
2022-05-21 17:11:30
...
JAVA子父类内部程序的执行顺序
******************************************************************
一、父类的静态成员赋值和静态块
二、子类的静态成员赋值和静态块
三、父类的成员赋值和初始化块
四、父类的构造方法
五、子类的成员赋值和初始化块
六、子类的构造方法
*********************************************************************
程序实例:
结果输出为
A
D
B
C
E
G
Student2 : zhangsan
zhangsan is work
******************************************************************
一、父类的静态成员赋值和静态块
二、子类的静态成员赋值和静态块
三、父类的成员赋值和初始化块
四、父类的构造方法
五、子类的成员赋值和初始化块
六、子类的构造方法
*********************************************************************
程序实例:
public class Student2 extends User2{ static{//静态块 System.out.println("D"); } {//初始化块 System.out.println("E"); } public Student2(){ System.out.println("F"); } public Student2(String userName){ this.userName = userName; System.out.println("Student2 : "+userName); } public void work(){ System.out.println(this.userName + "is work"); } public static void main(String[] args) { Student2 s = new Student2("zhangsan"); s.work(); } {//若有两个初始化块,则顺序执行 System.out.println("G"); } } class User2{ protected String userName; static{ System.out.println("A"); } { System.out.println("B"); } public User2(){ System.out.println("C"); } public User2(String userName){ System.out.println("User2 : "+userName); this.userName = userName; } public void work(){ System.out.println("User2 : work"); } }
结果输出为
A
D
B
C
E
G
Student2 : zhangsan
zhangsan is work
上一篇: HashMap与HashTable的区别