List 为什么可以实例化ArrayList

昨天我带的一个同事问我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个区别但是我没说,不过今天我也总结了下
下篇博客在说吧.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值