хорошо ... Вот возможный способ достичь того, что вы ищете. Я думаю, что это требует Delphi 2005 или позже, хотя. (Или любой другой версии, которая представила видимость «Строгая защита | частная»)
TBase = Class
Strict Protected
procedure Method1;
procedure Method2;
procedure Method3;
procedure Method4;
End;
TDerived1 = Class(TBase)
Protected
procedure Method1;
procedure Method2;
procedure Method3;
End;
TDerived2 = Class(TBase)
Protected
procedure Method3;
procedure Method4;
End;
TUserClass = class
FImplementer : TDerived1;
end;
И методы выглядят так
procedure TDerived2.Method3;
begin
inherited Method3;
end;
Но ваши требования заставляют меня задуматься, действительно ли ваш метод относится к вашему классу TBase. Кажется, они должны быть статической процедурой или, может быть, процедурой класса другого класса. Я не думаю, что они действительно принадлежат TBase.