關於java中父類靜態方法能否被之類重寫的問題
阿新 • • 發佈:2018-12-27
1. 先說結論:
不能被重寫
2. 為什麼??
②. 所引用該方法的物件指向的都是記憶體中同一塊記憶體的資料, 已經寫死了呀, 那你還怎麼重寫呢
3. 靜態方法可以直接用類名呼叫這麼方便,為什麼不都設定為靜態屬性和方法?
①.靜態方法從屬於類, 可以通過類名直接呼叫, 在編譯之後所分配的記憶體會一直存在(不會被回收),直到程式退出記憶體才會釋放這個空間。
如果全是靜態方法和屬性, 則記憶體被佔據, 哪來的記憶體執行程式
4. 猜想: 在之類中編寫一個和父類相同的方法, 應該是在記憶體中又分配了一塊單獨記憶體
public classADHero 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(); //------------->輸出: 這是之類的靜態方法 } }