1、Object
- object类是所有类的来源,
- 常用被重写的方法:equals()、toString()、getClass()、hashCode();被定义成final 的方法不允许被覆盖
- 因为不含有必须被继承的方法,所以不是抽象类;
2、目的:
总结目的有两个:
- 一是作为多态让方法可以处理多种类型的机制,
- 二是提高java在执行期间对任何对象都有需要的方法的实现程序代码,让所有的类都会继承到。。。
3、使用
- 当某个对象是以object类型来引用的时候,java会把他当做object的实例。这代表着你只能用object类中声明的方法。当调用子类特有的方法时,会编译不通过。
注意:编译器是根据引用类型来判断哪些method可以调用,而不是根据object确实代表的实例类型。 - 当你想使用object引用的实例对象的方法时,可以将该引用变量强制成对应的实例变量的引用。
public void go(){
Obj adog = new Obj();
// Obj sameDo = getObject(adog);//object类型对象不能赋值给Dog类型的引用变量。便宜报错
Obj sameDo = (Obj)getObject(adog);//强转成Dog类型
if(sameDo instanceof Obj ) {
System.out.print("true1");
}
}
public Object getObject(Object o){
if(o instanceof Obj ) {
System.out.print("true2");
}
if(o instanceof Object ) {
System.out.print("true3");
}
return o;//此返回的是一个object类型的。
}
public static void main(String[] args) {
Obj obj = new Obj();
obj.go();
}
}