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();对其进行存储了,符合多态的规则。

上一篇 下一篇

猜你喜欢

热点阅读