大家看到 class 和 static 這兩個 keyword 當作前綴的修飾詞,心中有沒有出現這兩個到底差在哪邊的疑惑?尤其使用上又感覺不出差異在哪邊。
在比較之前先簡單提一下什麼是 static?
ANS: 在程式碼前面宣告 static 就是在 compiler 後分配程式的記憶體位置,無論之後實例化他多少次,記憶體位置永遠一樣,而其他非 static 在 new 一個新物件時,就會產生的物件就會位於不同的記憶體空間。
圖一:
圖二:
在圖一中,整理了兩者的比較,大家可以參考看看,但要特別注意:
而 static 修飾詞中包含了 final 的效果,所以你要 override 被 static 修飾的屬性時會報錯
以上~