对象类作为Java中的超类

时间:2010-03-22 08:54:31

标签: java class

为什么对象类是Java中的超类?

6 个答案:

答案 0 :(得分:16)

这是一个很好的问题。 Java选择使单个类成为所有内容的最终父类,以便有一种简单的方法来传递任意对象,而无需知道其类型(即,您可以使用声明的Object类型来引用每个项目在类型系统中,甚至是使用其包装类的基元)。但是,有一些OOP语言,例如C ++,其中没有Java中的通用基类。拥有通用基类的另一个好处是,处理超类的逻辑不必专门用于顶级类(通用基类,Object本身除外)。

答案 1 :(得分:4)

这就是我们所说的Java中面向对象编程的公理。代码中的每个抽象都是一个对象。它包含一些适用于您在代码中使用的每个信息的内容:

  • equalshashCode方法在给定的抽象中建立平等理论(参见相应的javadoc);
  • toString以人类可读(可能是程序员可读的)格式表示对象(因为我们大多数人仍然使用显示器和键盘);
  • getClass为给定的抽象提供反射功能;
  • 组织面向对象的运行时的一些方法(垃圾收集,同步等)。

如果您学习Java,最好学习您使用的任何书籍的“继承”部分,然后尝试自己回答这个问题。

答案 2 :(得分:1)

脱离我的头顶

  1. 将“对象”定义为根类可确保VM可以依赖为实用程序方法(如equals,clone,hashcode等)提供的接口

  2. 垃圾收集器可以确保用户认为可以协调的任何内容都可以在finalize方法中执行

答案 3 :(得分:1)

它为程序员创建的所有派生对象提供了一个模板。 每个用户定义的对象可能需要的关键功能都可以通过这种方式获得。

  • 对象锁定(用于并发问题解决)

  • 克隆

  • 哈希码生成

列出更重要的名称。

答案 4 :(得分:1)

Java类(隐式/显式)extends Object,原因如下:

  • Java需要在每个存在的平台上运行(无论是移动,Windows,Linux等),编写大量代码以在每个平台上运行都是一项使命。 因此,Java创建了native。这样,所有对象都被注册为JVM可以理解和执行的本机对象。不要忘记JVM是用C ++编写的(无论它执行的平台如何)。
  • 对于垃圾收集,当不需要对象时,JVM会调用finalize方法。

这里已经提到了其余部分。

答案 5 :(得分:0)

java程序本质上是对

的操纵

方法和类。

该类继承了构建结构的一些属性 后面。

Object是基类,所有类都是Object的子类。