0
A
回答
1
靜態方法在多態性的工作方式中沒有被覆蓋。但是,當您嘗試重寫靜態方法時,Java允許使用名稱隱藏的概念。
現在來你的問題。靜態方法可以通過Class Name和Object name來調用。如果用靜態方法重寫非靜態方法,編譯器將如何知道要調用哪個方法。
static void f(){}
A obj = new A();
A.f()
和obj.f()
都將調用靜態方法。如果你在這裏放置一個非靜態的f()
混淆開始爲obj.f()
。
2
覆蓋意味着在子類中提供實例方法的新實現,實例方法可能會或可能不會與類實例成員一起使用。重寫它們並將其重新定義爲static
是不合邏輯的。 static
表示該方法與類相關,而不是與類的實例相關。
你不能在C#和Java中這樣做。
對於C#看看override - MSDN
不能使用新的,靜態的或虛擬的修飾符來修改 覆蓋方法。
相關問題
- 1. 爲什麼我們不能重寫`||`和`&&`?
- 2. 爲什麼我們要聲明一個靜態方法
- 3. 爲什麼你不能在C#中聲明一個靜態結構,但它們可以有靜態方法?
- 4. 爲什麼我們可以有靜態最終成員,但不能在內部類中使用靜態方法?
- 5. 爲什麼我不能將此方法標記爲靜態?
- 6. 爲什麼我們只能訪問A類方法。爲什麼重寫方法不能更具限制性?
- 7. 爲什麼我們不能在靜態成員函數中使用const成員?
- 8. 爲什麼我不能初始化抽象類的方法而不將它們更改爲靜態?
- 9. Java重寫靜態方法
- 10. 爲什麼接口不能有靜態成員方法
- 11. 爲什麼java接口不能包含靜態方法實現?
- 12. 爲什麼靜態在編譯時隱藏重寫的方法?
- 13. 爲什麼我們不能覆蓋靜態方法在派生類中
- 14. 爲什麼super()不能使用__new__以外的靜態方法?
- 15. 爲什麼我不能在類/靜態方法中使用private,internal,fileprivate方法?
- 16. 爲什麼@decorator不能裝飾靜態方法或類方法?
- 17. 靜態方法不能實現接口方法,爲什麼?
- 18. 爲什麼實例方法不能覆蓋靜態方法
- 19. 爲什麼getAppProperty()不是靜態方法?
- 20. Android - 爲什麼我不能重寫SeekBar的onProgressRefresh方法?
- 21. 爲什麼你不能在Java中使用相同方法簽名的靜態和非靜態方法?
- 22. 爲什麼類的靜態成員不能在C++中重載?
- 23. 爲什麼我們不需要爲靜態方法創建對象?
- 24. 爲什麼我們要使用抽象類或方法,爲什麼不重寫超類方法呢?
- 25. 爲什麼我們需要一個明確的轉換,而不是擴展方法而不是靜態方法?
- 26. 爲什麼我不能在另一個UIViewController中重寫UIViewController的擴展方法?
- 27. 當使用類作爲一個類型,不能使用它的靜態方法
- 28. 爲什麼不使com.fasterxml.jackson.databind.ObjectMapper中的某些方法變爲靜態?
- 29. 爲什麼我不應該使用靜態導入Mockito方法?
- 30. 爲什麼模塊的'自我'方法不能成爲類的單一方法?
哪種語言C#JAVA ???? – Habib 2013-04-30 05:21:53
http://stackoverflow.com/a/2831429/516167 – MariuszS 2013-04-30 05:23:30
對不起,我沒有提到,JAVA。 – 2013-04-30 06:38:41