为什么Java中的每个类都继承自名为java.lang.Object
的类,即使我们没有明确地extend
它?
幕后发生了什么?
答案 0 :(得分:1)
Java平台中的所有类都是Object的后代。 Object类没有超类,每个类都有一个且只有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐式地是Object的子类。
请参阅javadoc
答案 1 :(得分:1)
这是Java制造商的一个设计决定,回到了时间的迷雾中。我相信它是这样的,每个对象都带有一些基本方法(hashCode,equals,wait,notify)的实现,而不必专门编写它们。这有很多好处 - 具有hashCode和equals的实现使得像Sets和HashMaps这样的东西很好地工作;拥有通知和等待的实现使得多线程编程变得更加容易。
至于幕后发生的事情 - 好吧,我想你需要查看编译器或JVM的源代码。但是,真的没什么意义。大多数Java开发人员都对每个对象都是对象这一事实感到满意 - 这是使Java成为现实的东西之一。
答案 2 :(得分:0)
好吧,因为每个班级都来自对象。这是多余的。