既然Object类是所有对象的父类,则所有的对象都可以向Object进行转换,在这其中也包含了数组和接口类型,即一切的引用数据类型都可以使用Object进行接收。
范例:使用Object接收接口实例
interface A{ //定义接口A
public String getInfo(); //定gs义抽象方法
}
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 ; //对象向上转型
A x = (A)obj ; //对象向下转型
System.out.printIn(x.getInfo()) ;
}
}
程序运行接货:
hello world!!!
通过以上代码可以发现,虽然接口不能继承一个类,但是依然是Object类的子类,因为接口本身是引用数据类型,所以可以进行向上转型操作。
同理,也可以使用Object接收一个数组,因为数组本身也是引用数据类型。
范例:使用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") ;
}
}
}
|
}
程序运行结果:
1 3 5 7 9
以上程序使用Object接收一个整型数组,因为数组本身属于引用数据类型,所以可以使用object接收数组内容,在输出时通过instanceof判断类型是否是一个整型数组,然后进行输出操作。
提示:Object类在实际开发中的作用
因为Object类可以接受任意的引用数据类型,所以在很多的类库设计上都采用Objec作为方法的参数,这样操作起来会比较方便。