Use derived classes as generic parameter - C#