Дочерний класс может получить доступ к защищенным функциям в родительском классе, но родительский класс не может получить доступ к защищенным функциям в дочернем классе.
Я бы хотел сохранить оба класса настолько закрытыми, насколько это возможно. Родительский класс является формой и используется только один раз. Все функции в дочернем классе являются статическими, он наследуется от родительского класса.
Как можно получить доступ к непубличным статическим методам в дочернем классе ( в другом модуле ) из родительского класса?
EDIT:
Родительский класс (Первый блок):
interface
type
TParent = class
public
procedure Initialize;
protected
procedure Test; virtual;
end;
implementation
procedure TParent.Initialize;
begin
Writeln('Initializing');
Test;
end;
procedure TParent.Test;
begin
end;
Детский класс (Второй блок):
interface
uses
ParentClass;
type
TChild = class(TParent)
protected
procedure Test;override;
end;
implementation
procedure TChild.Test;
begin
Writeln('Test!');
end;
Код (третье устройство):
var c:TParent;
begin
try
c := c.Create;
c.Initialize;
c.Free;
Readln;
end;
Вывод только "инициализируется". Я пытался отладить его, он не достигает дочернего класса.