将对象声明为接口有什么好处?

amp*_*ent 7 java polymorphism interface

可能重复:
"编程到接口"是什么意思?

我注意到有些人喜欢将对象声明为它实现的接口之一,即使在变量范围内,也没有必要将其视为接口,例如,没有外部API需要接口.

例如:

Map<String, Object> someMap = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)

或者你可以做到

HashMap<String, Object> someMap = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)

java.util.Map完全避免进口.

通过接口(上面第一个)而不是类本身(上面第二个)声明它有什么好处?

谢谢

Igo*_*gor 1

如果以后不使用该变量,则没有优点/缺点。使用接口而不是对象的原因是为了提供更大的灵活性,但如果不使用该变量,从性能角度来看没有什么区别。