JVM 篇1-多线程基础前提

98 阅读1分钟
package com.gitee.freakchicken.dbapi.test;

/**
 * @author lucky
 * @date 2021/10/25 0025 上午 9:08
 */
public class FatherClass {
    public FatherClass() {
        System.out.println("4.父类构造方法");
    }

    {
        System.out.println("3.父类非静态属性、代码块");
    }

    static {
        System.out.println("1.父类静态属性、静态代码块");
    }

    public void say(){
        System.out.println("7.父类实例方法");
    }

    public void isyou(){
        System.out.println("9.父类第二个实例方法");
    }
}
package com.gitee.freakchicken.dbapi.test;

/**
 * @author lucky
 * @date 2021/10/25 0025 上午 9:13
 */
public class ChildrenClass extends  FatherClass{

    public ChildrenClass() {
        System.out.println("6.子类构造方法");
    }

    {
        System.out.println("5.子类非静态属性、代码块");
    }

    static {
        System.out.println("2.子类静态属性、静态代码块");
    }


    @Override
    public void say(){
        System.out.println("8.子类实例方法");
    }


}
package com.gitee.freakchicken.dbapi.test;

/**
 * @author lucky
 * @date 2021/10/25 0025 上午 9:26
 */
public class T {

    public static void main(String[] args) {
     ChildrenClass c= new ChildrenClass();
    c.say();
    c.isyou();
    }
}

结果

1.父类静态属性、静态代码块

2.子类静态属性、静态代码块

3.父类非静态属性、代码块

4.父类构造方法

5.子类非静态属性、代码块

6.子类构造方法

8.子类实例方法

9.父类第二个实例方法