1. Object类的基本定义
Object类是所有类的父类,任何一个类在定义的时候没有明确的继承一个父类的话,那么他就是Object的子类。
下面两种定义的最终效果完全相同。
class Book{} | class Book Extends Object{} |
---|
既然Object类是所有类的父类,那么利用Object类可以接收全部类的对象,因为可以向上自动转型。
范例:利用Object类来接收对象
class Book extends Object {}
public class ObjectDemo {
public static void main(String[] args) {
Object obja = new Book(); //向上转型
Object objb = "Hello"; //向上转型
Book b = (Book)obja;
String s = (String)objb;
}
}
问题:为什么在Object类里面定义一个无参构造方法?
既然Object类是所有类的父类,那么所有类对象实例化的时候,子类构造方法一定要默认调用父类的无参构造。
从严格意义上来讲(一般不遵守),任何一个简单Java类都应该覆写Object类中的如下三个方法:
- 取得对象信息:
public String toString()
- 对象比较:
public boolean equals(Object obj)
- 取得对象HASH码:
public int hashCode()