Java编程之Object类
【摘要】 Object类是所有类的直接父类或间接父类,当一个类没有继承一个父类的时候,那么他
就继承了object,class A没有继承Object类,那么系统会默认让他继承Object类,class B
继承类A,那么我们这个object类呢,就可以去引用所有的类。
Object o1=new A()创建一个a类的对象,引用a对象,Object o2=new B()引用第
object类的概念
- java.long.Object是Java中所有类的直接父类或者间接父类
- class A{}
- class B extends A{}
- 所有类的对象都可以声明成Object引用
- Object o1=new A();
- Object o2=new B();
解析
Object类是所有类的直接父类或间接父类,当一个类没有继承一个父类的时候,那么他
就继承了object,class A没有继承Object类,那么系统会默认让他继承Object类,class B
继承类A,那么我们这个object类呢,就可以去引用所有的类。
Object o1=new A()创建一个a类的对象,引用a对象,Object o2=new B()引用第二个对象,
Object的子类继承了Object的方法,比较常用的三种方法,第一个是getClass()方法,第二个是
equals()方法,第三个是toString()方法。
getClass方法:返回一个对象的实际类型
编写类的继承关系
class Animal{}
class Dog extends Animal{}
class Courser extends Dog{}
在测试类中观察运行结果
Dog d=new Dog();
Dog c==new Courser();
System.out.println(d.getClass()==c.getClass());
final方法,返回Class类型的对象,反射来获取对象。
finalize()
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
hashCode()
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。
这个方法在一些具有哈希功能的Collection中用到。
wait()
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。
wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定
时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
- 其他线程调用了该对象的notify方法。
- 其他线程调用了该对象的notifyAll方法。
- 其他线程调用了interrupt中断该线程。
- 时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
notify()
该方法唤醒在该对象上等待的某个线程。
notifyAll()
该方法唤醒在该对象上等待的所有线程
总结
通俗的讲Object类是爹,是所有类的父亲。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)