作者kdok123 (小天)
看板java
標題[問題] static runtime問題
時間Sat Dec 20 15:31:39 2014
ex:
class A{
static void tell(){
sout("I am A");
}
}
class B extends A{
static void tell(){
super.tell(); //問題
}
}
問題:
有別於c++, Java的static是在runtime執行的
這樣我想static的運算應該會少了很多限制
所以我測試了一下讓static call super指針(兩個都是runtime才運算的)
結果發現不行?
其實static用起來還是跟C++一樣(至少我這麼覺得...)
請問既然static是在runtime運行的,那為什麼很多runtime的動作沒辦法一起做呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.228.150.131
※ 文章網址: http://www.ptt.cc/bbs/java/M.1419060702.A.0E6.html
※ 編輯: kdok123 (220.228.150.131), 12/20/2014 15:32:16
※ 編輯: kdok123 (220.228.150.131), 12/20/2014 15:33:32
→ ssccg: super就是指parent instance,Java spec裡沒有說在static 12/20 21:53
→ ssccg: context裡super可以當parent class來用,所以就不行 12/20 21:53
→ ssccg: 跟runtime不runtime沒關係 12/20 21:53
→ ssccg: 這不是做不做的到的問題,而是Java設計上就是如此 12/20 22:10
→ darkk6: 看沒很懂原PO想問啥...是單純問為何 static 不能用super ? 12/21 10:38
→ darkk6: 那根 runtime 有什麼關係 ... ? 12/21 10:39
→ swpoker: 何苦要把C++跟JAVA放在一起比較呢? 12/22 09:02