type // Обязательно предыдущее определение всех 3 классов t1 = partial class end; t2 = partial class(t1) end; t3 = partial class(t2) end; t1 = partial class // Обязательно возвращать или T из шаблона, или тип содержащий T, как array of T function f1: T; virtual; begin end; end; t2 = partial class(t1) end; t3 = partial class(t2) //Ошибка: Нет метода для переопределения function f1: T; override := default(T); end; begin var o := new t3; assert(o.f1 = 0); end.