使用多级继承定义对象

Gra*_*ier 2 java oop inheritance interface

让我们假设,我们需要创建一个必须提供并发性的映射,因此,我们决定使用a ConcurrentHashMap.但是,ConcurrentHashMap实现ConcurrentMapConcurrentMap实现Map接口(Multilevel inheritance).由于通过接口引用对象是Java中的最佳实践,这是在这种情况下定义对象的最佳方法吗?请分享原因.

ConcurrentMap map = new ConcurrentHashMap();
Run Code Online (Sandbox Code Playgroud)

要么

Map map = new ConcurrentHashMap();
Run Code Online (Sandbox Code Playgroud)

Ada*_*ker 9

如果您的代码知道并发并需要调用并发方法(如putIfAbsent),则唯一的选择是ConcurrentMap.如果你只使用put/remove/get,最好选择Map.