为什么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