// A generic type definition may have another generic type // definition as its parent. class Stack<S> { public void Hello (S s) { } } class Test<T> : Stack<T> { public void Foo (T t) { } } class X { Test<int> test; void Test () { test.Foo (4); test.Hello (3); } public static void Main () { } }