昨天我带的一个同事问我List 为什么可以实例化ArrayList,刚开始一下萌了(带了快 2个月了)
比如List list = new ArrayList();
List 是一个接口, 接口使用的使用不能实例化自己,
也就是我们没有见过List list = new List(); ,这个为啥不能呢,因为他不是一个类啊,在这说了语法上也不能这样写啊,写了肯定报错啊, 为啥可能实例化ArrayList 呢, 因为ArrayList 是一个类啊,还有就是它实现了List这个接口了,
可以看下源码呢
List 的
ArrayList的
说到这里看他似乎明白了点,我写了一个例子如下
写一个接口如下
public interface MyList {
void test();
}
在写一个类实现这个接口如下
public class MyClass implements MyList {
@Override
public void test() {
}
}
在使用的地方写法如下
MyList myList = new MyClass();
myList.test();
这个就是我们常见的List list = new ArrayList();
当然我们如果只是使用上面类MyClass里面的方法可以
MyClass myClass = new MyClass();
myClass.test();
这个也就是我们常见的
ArrayList list = new ArrayList();
它们2个区别但是我没说,不过今天我也总结了下
下篇博客在说吧.