Object类
一、概念
- Object类是所有java类的根父类
- 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类。
public class Person{
...
}
//等价于
public class Person extends Object{
...
}
- 多层继承,处于最高层的父类一定是Object。
二、示例
public class Test(){
//问题:想给test方法设置一个形参参数,这个参数不确定到底会传进来一个什么类
//可以确定的是传递实参一个会是一个类,那么test方法的形参要设置一个什么类型?
public void test(Object obj){
}
public static void main(){
Test t = new Test();
Person p = new Person();
Student s = new Student();
t.test(p);
t.test(s);
t.test(new Kk());
}
}
三、Object类中的主要方法
方法名称 | 类型 | 描述 | |
---|---|---|---|
1 | public Object() | 构造 | 构造方法 |
2 | public boolean equals(Object obj) | 普通 | 对象比较 |
3 | public int hashCode | 普通 | 去的hash码 |
4 | public String to String | 普通 | 对象打印时调用 |
1、public boolean equals(Object obj)
Person p = new Person();
Student s = new Student();
Person e = new Person();
System.out.println(p.equals(s));//false
System.out.println(p.equals(e));//false。每执行一次new Person就在堆内存中形成一个新对象
e = p;
System.out.println(p.equals(e));//true
//为什么p可以执行Object的方法?
//Object是所有类的父类,子类可以执行父类的方法,所以Person类的对象p可以执行Object类的方法
2、public int hashCode
Object O = new Object();
System.out.println(o.hashCode());
3、public String to String
打印当前对象所在的内存地址