【发布时间】:2015-04-09 15:30:54
【问题描述】:
java.lang 包中的 Object 类位于类层次结构树的顶部。每个类都是 Object 类的直接或间接后代。您使用或编写的每个类都继承了 Object 的实例方法。 为什么我们需要一个类是 java 中所有其他类的超类?
【问题讨论】:
java.lang 包中的 Object 类位于类层次结构树的顶部。每个类都是 Object 类的直接或间接后代。您使用或编写的每个类都继承了 Object 的实例方法。 为什么我们需要一个类是 java 中所有其他类的超类?
【问题讨论】:
因为这就是 Java 的设计方式。 Java 将所有内容(除了 pirmitives)视为一个对象,包括您的自定义对象。
使所有新创建的类都从 Object 扩展而来是一个优势。它允许在创建新对象时自动使用常用方法和属性。
一些常用的方法例如:toString()和equals()..etc
【讨论】:
在所有类型之间有一个共同的行为/接口对于诸如比较之类的操作很有用。
当您想要创建包含或可以包含不同类型的数组或其他集合时,它也很有用。
【讨论】:
将Object 作为所有Java 类的隐式基类可以帮助您编写不依赖于精确类型的代码,例如集合、生成字符串表示的类等等。请参阅java.lang.Object 的文档,了解每个类“开箱即用”支持的方法列表。
这绝不是所有语言的必需特性:还有其他语言没有强制性的公共子类。这样做是语言设计者的选择。
【讨论】: