爲什麼Object類中的方法像equals(),hashcode()等是公共的。如果這些能夠得到保護,那麼就足以滿足這些要求。請解釋。爲什麼在Obejct類中有公共方法,它們可能受到保護?
回答
錯誤。
除了至少是您的類型的限定符外,您不能從基類調用protected
方法。
如果toString()
已被保護,class A {}
中的代碼只能在A
的實例上調用toString()
。
我仍然無法正確理解它。你能用一個例子來解釋一下嗎?當我運行下面的程序時,它運行良好。 class Superclass { \t \t protected void MyMethod(){ \t \t System.out.println(「Inside superclass method」); \t} \t \t Superclass obj1 = new Superclass(); \t }輸出:在內部超類方法 內部超類方法 公共MyClass類延伸超類{ \t公共靜態無效主要(字符串S []){ \t \t \t \t超類OBJ1 =新超類() ; \t \t obj1.MyMethod(); \t \t \t \t Superclass obj2 = new MyClass(); \t \t obj2.MyMethod(); \t \t \t} } – 2013-05-06 13:48:26
@SandyDrake您無法從另一個類調用受保護的方法。這意味着你不能在String append或println中使用'toString()',你不能在HashMap中使用hashCode(),並且你不能在List中使用equals()。 – 2013-05-06 14:15:36
@SandyDrake:這是因爲受保護的方法在包中也是可見的。將'MyClass'移到不同的包中,這將停止編譯。 – SLaks 2013-05-06 18:23:43
- 1. C++類(公共,私有和受保護)
- 2. 爲什麼對象類中的方法受到保護?
- 3. 爲什麼我可以在後繼中公開受保護的方法?
- 4. 公共vs受保護
- 5. 僅獲取受保護方法和公共方法的MethodInfo?
- 6. python私有和公共方法,它們用於什麼?
- 7. 爲什麼在java的Object類中有公共方法?
- 8. 爲什麼我不能在as3中將受保護的方法覆蓋爲public?
- 9. PHP類常量 - 公共,私有還是受保護的?
- 10. 將私有或受保護的方法轉換爲公開
- 11. 公共保護是什麼意思?
- 12. 爲什麼要將基類中的受保護訪問更改爲派生類中的公共訪問權限?
- 13. 公共getter,帶CodeDOM的受保護setter
- 14. 爲什麼我們不能在kotlin中將類的可見性標記爲「受保護」?
- 15. 爲什麼我們不能在公共方法中使用斷言?
- 16. 爲什麼MVC中Controller類的TryUpdateModel受到保護?
- 17. 爲什麼我的PHP子類沒有從父類獲得公共和受保護的變量?
- 18. 推文在公共時間線上不可用,但推文不受保護......可能是什麼原因?
- 19. 爲什麼Joomla不使用私人,公共和受保護的關鍵字?
- 20. 爲什麼FxCop將其視爲公共保護?
- 21. 爲什麼BindingList <T> RemoveItem方法受保護
- 22. 爲什麼Enum構造函數不能具有受保護或公共訪問修飾符
- 23. 爲什麼抽象類的構造函數應該受到保護,而不是公共的?
- 24. 爲什麼不能保護java主類?
- 25. 對象類的受保護方法MemberWiseClone()
- 26. 爲什麼URLClassLoader.addURL在Java中受到保護?
- 27. 爲什麼在System.Object中定義的MemberwiseClone受到保護?
- 28. 春季DAO類的方法 - 保護與公共?
- 29. 找出一個方法是否受到保護公衆
- 30. 有無論如何定義公共或私人或受保護的類在PHP
您應該閱讀有關修飾符之間的區別。 – Maroun 2013-05-06 13:35:25
哪些要求?哈希集要求這兩種方法存在才能正常工作。可能有爭議的是,他們應該已經在一個單獨的界面中(因此是公開的)。 – 2013-05-06 13:35:45