我可能听起来很愚蠢地问这个问题,或者互联网会对这个问题有很多参考。但请相信我,我找不到任何正确回答的答案。所以我决定问这个问题
所以这是 为什么我们以这种方式声明对象,例如 Map m = new HashMap() 为什么不 HashMap m = new HashMap()
一般来说为什么我们声明引用子类对象的超类类型的对象。
答案 0 :(得分:-1)
好吧,这可以让你更改实现而不需要在特定的类上进行中继。
请考虑您已完成的示例,我们更愿意使用
Map<String, String> m2 = new HashMap<>();
在
HashMap<String, String> m2 = new HashMap<>();
这使您可以自由选择可能性能更高的其他实现。
Map<String, String> m2 = new TreeMap<>();