1. 程式人生 > >關於java中父類靜態方法能否被之類重寫的問題

關於java中父類靜態方法能否被之類重寫的問題

1. 先說結論:

  不能被重寫

2. 為什麼??

  ②. 所引用該方法的物件指向的都是記憶體中同一塊記憶體的資料, 已經寫死了呀, 那你還怎麼重寫呢

3. 靜態方法可以直接用類名呼叫這麼方便,為什麼不都設定為靜態屬性和方法?

  ①.靜態方法從屬於類, 可以通過類名直接呼叫, 在編譯之後所分配的記憶體會一直存在(不會被回收),直到程式退出記憶體才會釋放這個空間。 

    如果全是靜態方法和屬性, 則記憶體被佔據, 哪來的記憶體執行程式

4. 猜想: 在之類中編寫一個和父類相同的方法, 應該是在記憶體中又分配了一塊單獨記憶體

public class
ADHero extends Hero{ //自動生成裡面就沒有父類的靜態方法 //直接複製試一試 public static void read() { System.out.println("這是子類中的靜態方法"); } public static void main(String[] args) { Hero h = new ADHero(); h.read(); //------>輸出: 這是父類的靜態方法 ADHero adh
= new ADHero(); adh.read(); //------------->輸出: 這是之類的靜態方法 } }