A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© darkpiece 中级黑马   /  2014-1-21 15:41  /  1219 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 darkpiece 于 2014-1-21 16:21 编辑

是抽象类吗?能否覆盖object的方法?如果object类是具体的,为什么会允许去创建object的对象??

6 个回复

倒序浏览
Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类。

可以使用类型为Object的变量指向任意类型的对象。

Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法。

Object类的变量只能用作各种值的通用持有者。要对他们进行任何专门的操作,都需要知道它们的原始类型并进行类型转换。例如:

Object obj = new MyObject();

MyObject x = (MyObject)obj

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
虽然还没学到这,但是来事来顶一下.
回复 使用道具 举报
本帖最后由 三十而立 于 2014-1-21 16:14 编辑

1. Object是抽象类吗?
Object不是抽象类
(1)抽象类需要有abstract关键字修饰,抽象类中不可以建立对象,因为没有意义。
(2)Object有空参数构造函数,因此可以建立对象。
2. 能否覆盖object的方法?
可以的。
在String以及框架类中,都会重写hashcode和equals方法。
因为要是在自己特有功能的比较,需要复写父类中的equals比较的地址值。
为了更有效率的比较两个对象,需要复写hashcode。
3. 如果Object类是具体的,为什么会允许去创建object的对象?
Object类中有公共的构造函数public Object(),因此,可以建立该类对象。

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
三十而立 发表于 2014-1-21 16:11
1. Object是抽象类吗?
Object不是抽象类
(1)抽象类需要有abstract关键字修饰,抽象类中不可以建立对象, ...

nice!谢谢
回复 使用道具 举报

客气客气!
回复 使用道具 举报
本帖最后由 廉伟杰 于 2014-1-21 20:21 编辑

类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法常用的三个方法:boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。   equlas默认的比较的是  堆里地址,和 == 一样,都是比较地址

一般情况下子类根据自身情况重新覆写该方法,如String 覆写了 Object的equals方法:只比较字符的序列是否相同(这类需要看源代码)

int hashCode();  返回对象的一个十进制的hash值,每个对象的hashCode都不一样

Object类的 toString()方法:“对象的描述”。   建议所有类都覆写此方法       直接打印输出对象时,会调用该对象的toString()方法。



评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马