Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 为什么要首选 Java 类的接口?
我在一本书中读到公开实现的风格很差,所以:
好的:Set s = new HashSet( );
Set s = new HashSet( );
公平的:HashSet s = new HashSet( );
HashSet s = new HashSet( );
你能解释这是为什么吗?
您应该始终对接口而不是实现进行编程。这允许松散耦合。 例如,如果您在第一种情况下替换HashSet为 a ,您的代码将不会受到影响。TreeSet将这种变化与第二种情况进行比较。 因此,只要客户端代码使用接口而不是具体类型,您就可以在不影响客户端代码的情况下切换实现。
HashSet
TreeSet