1. 程式人生 > >JAVA父類的靜態方法能否被子類重寫?

JAVA父類的靜態方法能否被子類重寫?

靜態:

  在編譯時所分配的記憶體會一直存在(不會被回收),直到程式退出記憶體才會釋放這個空間,在例項化之前這個方法就已經存在於記憶體,跟類的物件沒什麼關係。子類中如果定義了相同名稱的靜態方法,並不會重寫,而應該是在記憶體中又分配了一塊給子類的靜態方法,沒有重寫這一說,只是單純的名字重複了。

 

父類程式碼

1 public class Fu {
2     public static void show() {
3         System.out.println("父類的靜態方法");
4     }
5     public void method() {
6         System.out.println("父類的一般方法");
7     }
8 }

 

子類程式碼

public class Zi extends Fu {
    public static void main(String[] args) {
        Fu fu = new Zi();
        fu.show();
        fu.method();
    }
    public static void show() {
        System.out.println("子類的靜態");
    }
    public void method() {
        System.out.println("子類的一般方法");
    }
    
}

 輸出結果是:

 父類的靜態方法

 子類的一般方法 

 

  當父類引用指向子類物件,只會呼叫父類的靜態方法,此行為並不具有多型性!只能說明子類能繼承父類的靜態方法!靜態方法與物件無關!

&n