Object类,所有类的基类

Object类,所有类的基类

Java 是一门典型的面向对象语言,提供 extends 关键字使子类继承父类。

public class Student extends Person {
    ...
}
复制代码

但是创建 Person 类时不用使用 extends 继承 Object类。

public class Person extends Object {
    ...
}
复制代码

因为,创建的类没有明确指明继承关系时,会在编译时自动继承 Object 类。可以使用 Object 类型的变量引用任何类型的实例:

Object sample = new Student(1001, "小咖", 20, "男");
复制代码

也可以将任意的 Object 实例转换为需要的类型:

Person p = (Person) sample;
复制代码

上面两个例子在编译器中是不会报错的。因此,Object 类是 Person 类的父类,每个类都是由 Object 扩展而来的。所以,熟悉 Object 类中提供的服务是十分重要的。

Java 中的基本类型不是对象,但也提供了相应的包装类型,如 int 基本类型对应 Integer 包装类型。但使用基本类型创建的数组是扩展自 Object 类,实际上是引用。

Object sample = new int[10];
复制代码

其实,所有的数组类型都是扩展了 Object 类。

下表为 Object 类的通用方法。

方法 描述 异常
final native Class<?> getClass() 返回对象的运行时类
native int hashCode() 返回对象的散列码
boolean equals(Object obj) 与其它对象是否相等
native Object clone() 克隆并返回对象的副本 CloneNotSupportedException
String toString() 返回对象的字符串表示
final native void notify() 唤醒正在等待对象监听器上的一个线程
final native void notifyAll() 唤醒正在等待对象监听器上的所有线程
final native void wait() 导致当前线程等待,直到另一个线程调用此对象的notify()notifyAll() InterruptedException
final native void wait(long timeout) 导致当前线程等待,直到另一个线程调用此对象的notify()notifyAll(),或者指定时间已到 InterruptedException
final void wait(long timeout, int nanos) 导致当前线程等待,直到另一个线程调用此对象的notify()notifyAll()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值