【发布时间】:2013-10-07 13:01:33
【问题描述】:
我用 Java 编程已经有一段时间了,但是当我试图向朋友解释 java.lang.Object 类是什么时,我想不出比简单的单行词更多的东西:
Java 中的所有对象都隐式扩展
java.lang.Object
我不太清楚为什么要这样做。
于是,我查看了GrepCode上的源码,希望能找到一些线索。现在我知道java.lang.Object 是什么以及它的作用,我想知道是否有任何具体原因说明它为何如此设计。
我的问题仍然存在:为什么每个对象都应该扩展 java.lang.Object?
【问题讨论】:
-
这样您就可以自信地在任何对象上调用 Object 方法。
-
一开始我很困惑,但您实际上是在问为什么 Java 具有单根类层次结构吗? (与允许事物从其他根类继承相反)
-
每个对象都是一个
Object,因为拥有所有对象共有的功能很有用。 -
我投票关闭是因为您的 “为什么每个对象都应该扩展它?” 不清楚。对象上有方法,每个对象都可以使用方法。所以答案很明显,一定有什么让你担心,而且还不清楚。
-
那么,它只是一个设计决策,还有其他的吗?
标签: java object inheritance design-patterns