回答編集履歴
1
仮型パラメータを型引数に変更
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
```class クラス名<T>```、```Function<T>```(こちらは関数の型定義)に書かれている```T```が、Genericsでいう
|
1
|
+
```class クラス名<T>```、```Function<T>```(こちらは関数の型定義)に書かれている```T```が、Genericsでいう型引数になります。
|
2
|
-
クラスや関数定義中にある同一型相当の名称がその
|
2
|
+
クラスや関数定義中にある同一型相当の名称がその型引数が使われます。
|
3
3
|
そこに定義されていないものは、他の実際の型が割り当てられるようです。
|
4
4
|
|
5
|
-
```class SingleUser<T> extends User<T>```は```SingleUser<T>```に書かれている```T```が
|
5
|
+
```class SingleUser<T> extends User<T>```は```SingleUser<T>```に書かれている```T```が型引数で、```User<T>```は```SingleUser<T>```を使用する場合に```<>```内に書かれた型を当てはめ使用すます。
|
6
6
|
|
7
|
-
次に```class RandomWordsState extends State<RandomWords>```は```RandomWordsState```はGenericsなクラス定義ではなく
|
7
|
+
次に```class RandomWordsState extends State<RandomWords>```は```RandomWordsState```はGenericsなクラス定義ではなく型引数は存在しません。そのため、``` State<RandomWords>```は事前に定義されている```RandomWords```をあてはめ使うことになります。
|
8
8
|
|
9
|
-
最後に上では書かれていませんが、```class Hoge<T> extends Base<ClassA>```という定義の場合、```Hoge<T>```はGenericsで```T```という
|
9
|
+
最後に上では書かれていませんが、```class Hoge<T> extends Base<ClassA>```という定義の場合、```Hoge<T>```はGenericsで```T```という型引数を持っています。しかし```Base<ClassA>```の方は```Hoge```で指定した```T```という型引数を使用していません。そのため```Base```のGenericsクラスに```ClassA```という型をあてはめたものを使用するといった形になります。
|
10
10
|
|