1、 instanceof关键字用于判断一个对象是否是否个类的实例!在向下转型时,增加验证,以保证转型不会发生ClassCastException
2、Object是所有类的父类,则所有类的对象都可以使用Object接受,但是Object不光可以接受对象,还可以接受任意的引用数据类型【类,接口,数组】
【抽象类和接口都不能被直接实例化】
interface A{//定义接口
public String getInfo();
}
class B implements A{
public String getInfo(){ // 覆写方法
return "Hello World!!!" ;
}
};
public class ObjectDemo04{
public static void main(String args[]){
A a = new B() ; // 向上转型,为接口实例化
Object obj = a ; // 使用Object接收,向上转型
A x = (A)obj ; // 向下转型
System.out.println(x.getInfo()) ;
}
};
Object接收数组
public class ObjectDemo05{
public static void main(String args[]){
int temp[] = {1,3,5,7,9} ; // 定义数组
Object obj = temp ; // 使用Object接收数组
print(obj) ;
}
public static void print(Object o){
if(o instanceof int[]){ // 判断是否是整型数组
int x[] = (int[])o ;
for(int i=0;i<x.length;i++){
System.out.print(x[i] + "\t") ;
}
}
}
};
总结:
Object类是所有类的父类,只要引用数据类型都可以使用Object进行接收
对象在向下转型之前一定要发生向上转型,要使用instanceof关键字判断
toString():对象打印时调用
equals():对象比较时调用 String 类也是Object的子类