共変(covariance): 戻り値のアップキャストが常に安全 出力(getや戻り値)にしか使わないパラメータ 反変(contravariance): 引数のダウンキャストが常に安全 入力(setや引数)にしか使わないパラメータ 参考文献https://ufcpp.net/study/csharp/sp4_variance.html