Как ожидать всех возможных потомков класса Pascal?

Требуется указать для поля родительский класс, от которого будут наследоваться всевозможные подклассы, которые будут приходить для данного поля.
Собственно проблема.
Если чётко указать, что поле имеет тип родительского класса, то дочерние классы уже не проходят. В языках с хорошим ООП, эта проблема решается использованием интерфейсов, как возможно решить проблему на Pascal?
  • Вопрос задан
  • 2374 просмотра
Пригласить эксперта
Ответы на вопрос 1
Если чётко указать, что поле имеет тип родительского класса, то дочерние классы уже не проходят.

Почему не проходят ? Приведите, пожалуйста, пример кода ...
type TParent=class
             end;

type TChild=class(TParent)
            end;

type TController=class
         private
          fClass:TParent;
          public
       procedure ProcessAnyChild(aClass:TParent);
                 end;

procedure Test();
var child:TChild;
    controller:TController;
begin
child := TChild.Create();
controller := TController.Create();
controller.ProcessAnyChild(child)
end;

procedure TController.ProcessAnyChild(aClass: TParent);
begin
fClass:=aClass
end;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы