2

なぜ使うのか、

Map abc = new HashMap(20);

それ以外の

HashMap abc = new HashMap(20);

これら2つの違いを見つけるのを手伝ってください。

助けに感謝します。

4

1 に答える 1

5

最初のケースでは、abc変数はインターフェースHashMapの実装であるtype です。Map後で気が変わってTreeMapたとえばを使用したい場合は、コード内の多くの参照を変更する必要があり、一般的な操作で十分な場所のHashMap特性を使用した可能性があります。HashMapMap

変数の型としてインターフェイスを使用するとMap、実装を簡単に変更できます。クラスを再利用するように設計する場合、これは重要です。を引数として取るメソッドがある場合Map、任意のMap実装を使用してメソッドを呼び出すことができます。したがって、呼び出し元は最適な実装を自由に使用できます。

于 2012-05-05T07:12:01.500 に答える