Если под "универсальным классом" вы имеете в виду класс-дженерик, то
почитайте про
параметрический полиморфизм и полиморфизм через подтипы. Параметрический полиморфизм в контексте C# это про дженерики, полиморфизм через подтипы - это о вашем "указать родительский класс".
Это сильно разные механизмы, и чтобы понять разницу, попробуйте реализовать какой-нибудь List или Dictionary без использования дженериков, как предлагает вам
Василий Банников , и как было в .NET 1.1 (о боги, это было как будто позавчера), до появления обобщённых типов. И увидите, как теряется типобезопасность и сколько нужно кастить туда-сюда.