Сначала вам нужно понять понятие абстракции и полиморфизма в ООП.
Если T является родительским классом, он должен быть переопределен дочерним классом S, учитывая, что T сделан виртуальным и S переопределен.
Пример:
T может быть BirdClass () с методами CanFly (), CanEat (), CanSee ().
Тогда S может быть Pegion, который может переопределять методы CanFly (), CanEat (), CanSee ().
ИЛИ Воробей, который может переопределять методы CanFly (), CanEat (), CanSee () родительского класса.