牛客题目练习

1.关于父类子类执行顺序

public class Demo {
    class Super{
        int flag=1;
        Super(){
            test();
        }
        void test(){
            System.out.println("Super.test() flag="+flag);
        }
    }
    class Sub extends Super{
        Sub(int i){
            flag=i;
            System.out.println("Sub.Sub()flag="+flag);
        }
        void test(){
            System.out.println("Sub.test()flag="+flag);
        }
    }

    public static void main(String[] args) {
        new Demo().new Sub(5);
    }
}

说明:在继承中代码的执行顺序为:

(1)父类静态对象,父类静态代码块

(2)子类静态对象,子类静态代码块

(3)父类非静态对象,父类非静态代码块

(4)父类构造函数

(5)子类非静态对象,子类非静态代码块

(6)子类构造函数

你可能感兴趣的:(Java)