在之前已经分析了Object可以接收任意的对象,因为从定义的结构上来讲,Object是所有类的父类,但是Object的概念并不仅仅局限于此,它可以接收所有的引用数据类型,包括:数组、接口。
范例:使用Object来接收数组对象
public class TestDemo {
public static void main(String[] args) {
//利用Object接收数组对象,向上转型
Object obj=new int [] {1,2,3};
//向下转型 需要强转
int data []=(int[])obj;
for(int x=0;x<data.length;x++)
System.out.print(data[x]+"、");
}
}
而Object可以接收接口,更是Java中的强制性要求,因为本身是不可能继承任何类的,所以这种的类型的接收就是自己的规定。
范例:使用Object接收接口对象
interface IMessage{}
class MessageImpl implements IMessage{
public String toString() {
return "111";
}
}
public class TestDemo {
public static void main(String[] args) {
//子类向父接口转型
IMessage msg=new MessageImpl();
Object obj=msg;//接口向Object转型
System.out.println(obj);
IMessage temp=(IMessage) obj;//强转回来
}
}
Object真正达到了参数的统一,如果一个雷希望可以接收所有的数据类型, 就是用Object完成