大家!
刚开始学习Java,一时看不懂,例如:
Set<Integer> intset = new HashSet<Integer>(); (1)
HashSet<Integer> intset2 = new HashSet<Integer>(); (2)
这些例子有什么区别?或者它们是相同的? (1) 示例看起来像向上转换,因此这意味着我们有 HashSet
仅使用 Set(interface) 方法?谢谢您的回复!
最佳答案
当你写
Set intset = new HashSet();
您保证以下代码(如果不进行转换)不会使用 HashSet
类的任何特殊性。这意味着 future 的实现可能会用 Set
的任何其他实现替换 HashSet
,或者可能从其他地方接收它。这实际上是一种最佳实践,因为它意味着您的代码更少 coupled .
关于java - 有什么不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844599/