我在包 java.lang
中创建了一个名为 Object
的类。在另一个包中,我创建了 Main
类。现在在 Main 类的主要方法中,当我编写 new Main()
并在之后放一个点时,我看不到 equals()
、wait()
等。即实际 Object 类的方法。
我的问题是,您不认为不应允许创建名称为 Object 的类(特别是使用 java.lang 包)。由于对象类默认被所有类继承,所以在我的例子中,我定义的任何类都会自动继承我的类而不是实际的对象类,因为我的对象类的类名和包名与实际对象类的相同。
最佳答案
这是一个开放式的问题。
应该允许吗?为什么不,如果您知道自己在做什么,那就发疯吧。
我同意这在理论上有点危险,但我看不出有人会错误地这样做。如果某人出于某种原因(例如学术原因)实际上想要重新定义整个 Object 类,那么他/她可以自行承担风险。
没有任何语言可以完全阻止您将箭射向自己的膝盖。
关于java 定义名称为 Object 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11986667/