静态语句块,非静态语句块,构造方法在子类和父类的执行顺序
- package test;
- public class Main {
- public static void main(String args[]) {
- new subclass();
- new subclass("hello,world!");
- }
- }
- class base{
- static {
- System.out.println("父类的静态代码块");
- }
- {
- System.out.println("父类的非静态代码块");
- }
- public base(){
- System.out.println("父类的无参构造方法");
- }
- public base(String str){
- System.out.println("父类的有参构造方法:参数为:"+str);
- }
- }
- class subclass extends base{
- static {
- System.out.println("子类的静态代码块");
- }
- {
- System.out.println("子类的非静态代码块");
- }
- public subclass(){
- System.out.println("子类的无参构造方法");
- }
- public subclass(String str) {
- System.out.println("子类的有参构造方法:参数为:"+str);
- }
- }
结果:就是顺序:
父类的静态代码块
子类的静态代码块
父类的非静态代码块
父类的无参构造方法
子类的非静态代码块
子类的无参构造方法
父类的非静态代码块
父类的无参构造方法
子类的非静态代码块
子类的有参构造方法:参数为:hello,world!

浙公网安备 33010602011771号