1. 程式人生 > >JAVA類父子類方法呼叫關係

JAVA類父子類方法呼叫關係


public class Text extends Parent{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         //Parent.parentStaticMethod();
       Child child = new Child();
    }
    

}
class Parent {
    public static int t = parentStaticMethod2();
    {
        System.out.println("父類非靜態初始化塊");
    }
    static
    {
        System.out.println("父類靜態初始化塊");
    }
    public Parent()
    {
        System.out.println("父類的構造方法");
    }
    public static int parentStaticMethod()
    {
        System.out.println("父類類的靜態方法");
        return 10;
    }
    public static int parentStaticMethod2()
    {
        System.out.println("父類的靜態方法2");
        return 9;
    }
 
    @Override
    protected void finalize() throws Throwable
    {
        // TODO Auto-generated method stub
        super.finalize();
        System.out.println("銷燬父類");
    }
}

class Child extends Parent
{
    {
        System.out.println("子類非靜態初始化塊");
    }
    static
    {
        System.out.println("子類靜態初始化塊");
    }
    public Child()
    {
        System.out.println("子類的構造方法");
    }
    public static int childStaticMethod()
    {
        System.out.println("子類的靜態方法");
        return 1000;
    }
    @Override
    protected void finalize() throws Throwable
    {
        // TODO Auto-generated method stub
        super.finalize();
        System.out.println("銷燬子類");
    }
}

總結起來就是:

父類的靜態方法-父類的靜態初始化塊-子類的靜態初始化塊-父類的非靜態初始化塊-父類的構造方法-子類的非靜態初始化塊-子類的構造方法

-------------------------靜態方法---------------------------------|-------------------------非靜態方法(構造方法應該歸於非靜態)---------------------|