版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
背景描述
今天,有个小伙伴对一行代码始终闹不清楚,代码如下:
Iterator<String> iterator = arrayList.iterator();
源码剖析
其实,这就是典型的:父类(接口)引用指向子类对象。例如,这行代码的等号的左边是一个Iterator接口的引用,等号的右边是一个实现了Iterator接口的类的对象。
是不是还是有点困惑?不急,我们来看看iterator()的源码:
看到这里,是不是清楚多了呢?怎么,还是有疑惑?别急,我们再来手写一个示例加以理解。
示例实践
代码很简单,无须过多解释;详情如下。
MyInterface接口
MyInterface接口实现类MyInterfaceImpl
Other类
Test类
嗯哼,到这应该没有疑惑了。