JAVA父類的靜態方法能否被子類重寫?
- 2019 年 10 月 8 日
- 筆記
靜態:
在編譯時所分配的記憶體會一直存在(不會被回收),直到程式退出記憶體才會釋放這個空間,在實例化之前這個方法就已經存在於記憶體,跟類的對象沒什麼關係。子類中如果定義了相同名稱的靜態方法,並不會重寫,而應該是在記憶體中又分配了一塊給子類的靜態方法,沒有重寫這一說,只是單純的名字重複了。
父類程式碼
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("子類的一般方法"); } }
輸出結果是:
父類的靜態方法
子類的一般方法