一般我们使用代码来接口:
List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
我们可以写出以下内容吗?
AbstractList<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
这种特殊初始化的缺点是什么?任何见解将不胜感激。
将列表定义为 anAbstractList
会将您的实现与 的子类联系起来AbstractList
,而使用该List
接口允许您将该接口的list
任意实现分配给变量。
定义列表 asAbstractList
还可以让您访问(无需强制转换)AbstractList
不属于List
接口的方法,但使用它们会使您的代码不那么灵活。
如果你没有很好的理由去做,那就不要去做。
归档时间: |
|
查看次数: |
215 次 |
最近记录: |