Ты говоришь, что не знаешь чем отличается, хотя там в 3 слова можно объяснение уложить, но во всех статьях на 3 абзаца расписывают, от которых непонятно ещё больше становится
generic - Обобщённый тип (обобщение, дженерик) позволяет резервировать место для типа, который будет заменён на конкретный, переданный пользователем, при вызове функции или метода, а также при работе с классами.