2

我们为什么使用,

映射 abc = new HashMap(20);

代替

HashMap abc = new HashMap(20);

请帮我找出这两者之间的区别。

将不胜感激。

4

1 回答 1

5

在第一种情况下,abc变量的类型是HashMap,它是Map接口的实现。如果您稍后改变主意并想使用TreeMap例如,您将不得不更改HashMap代码中的许多引用,并且您可能使用HashMap了泛型Map操作足够的特性。

如果您使用Map接口作为变量的类型,则可以轻松更改实现。当您设计类以供重用时,这一点很重要。如果您有一个采用Mapas 参数的方法,则任何Map实现都可以用来调用您的方法。因此,调用者可以自由使用最合适的实现。

于 2012-05-05T07:12:01.500 回答