У цьому уроці розглянемо два способи як можна проводити універсальні параметри типів - це обмеження, ковариантность і контраваріантність. Вони допоможуть Вам написати справжнє об'єктно-орієнтоване вирішення проблем та повторно використовувати код з ієрархії інтерфейсів.