JAVA類父子類方法呼叫關係
阿新 • • 發佈:2018-12-26
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("銷燬子類");
}
}
總結起來就是:
父類的靜態方法-父類的靜態初始化塊-子類的靜態初始化塊-父類的非靜態初始化塊-父類的構造方法-子類的非靜態初始化塊-子類的構造方法
-------------------------靜態方法---------------------------------|-------------------------非靜態方法(構造方法應該歸於非靜態)---------------------|