ラベル 型システム の投稿を表示しています。 すべての投稿を表示
ラベル 型システム の投稿を表示しています。 すべての投稿を表示

2020/03/28

型システムにおける共変性と反変性

共変、反変、不変とは?

オブジェクト指向言語で親クラスに対して子クラスを定義する際、親子で型が違っても、型システムを壊さないパターンがいくつかあります。そのパターンの中で出てくるのが、共変、反変、不変というキーワードです。
共変とは、広い型を持つ親クラスから、狭い型を持つ子クラスを導出する際に、合わせて広い型から狭い型へ変わることを指します。反変とは逆に、狭い型から広い型へ変わること、不変とは型が変わらないことを指します。