質問編集履歴
2
したがって、List<String> names = new ArrayList<String>\(\);とするというのは不適切でしたので、修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
上ではArrayListもLinkedListでも同様に表示できますが、下ではArrayListしか表示させることができません。
|
20
20
|
|
21
|
-
|
21
|
+
また、コレクションを宣言するときは
|
22
22
|
|
23
23
|
List<String> names = new ArrayList<String>();
|
24
24
|
|
1
質問の補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,3 +61,25 @@
|
|
61
61
|
|
62
62
|
|
63
63
|
これに対する皆さんの考えを教えてください。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
補足
|
68
|
+
|
69
|
+
なんだか意図がうまく伝わっていない気がしたので、補足しておきます。
|
70
|
+
|
71
|
+
型安全は型によって、安全を担保しようという考え方で、enumやジェネリクスもこれに当たります。
|
72
|
+
|
73
|
+
enumによって、ある型に入れることのできる候補というのは制限することができますし、ジェネリクスも同様で、ArrayList<String>だとString型しか入りません。
|
74
|
+
|
75
|
+
一方、多態性はアップキャストすることによるメリットを享受しようという考えに基づいています。
|
76
|
+
|
77
|
+
まとめると、多態性は曖昧に捉えており、型安全は厳密に範囲を狭めているということになるわけですが、これらのコンセプトって相容れないものだと思うのです。
|
78
|
+
|
79
|
+
しかしながら、現実のプログラミングにおいて、この二つの考えって共存しているとは思うのですが、一つの部分(ステートよりもさらに小さな単位で、例えば評価式)に着目してみると、どちらかしか使ってないと思うのです。
|
80
|
+
|
81
|
+
つまり、多態性と型安全の両方のコンセプトを一つ部分に取り込むことはできないと思うのですが、その使い分けについて、教えてくださいというのが私の質問だったのです。
|
82
|
+
|
83
|
+
書き方が悪かったですね。
|
84
|
+
|
85
|
+
申し訳ないです。
|