java面试数组相关
2018-03-25 本文已影响0人
pr0metheus
笔试题目一:
问如下代码能否编译通过?并说明相应的理由。
interface I {
}
public class ArrayTest {
public static void main(String[] args) {
I[] i = new I[2];
}
}
答案:可以编译通过,首先要知道一个事实数组存储的不是对象,而是引用,即对象的地址,对象是存储在堆中的,上述代码的含义是声明了一个数组有2个元素,每个元素存储的是I类型的引用。即我可以定义一个类Child它实现了接口I,这样我就可以通过代码I[0] = new Child();对其进行存储了,符合多态的规则。