В продолжение темы возник вопрос...
Допустим, у меня есть класс TParent с какими-то общими свойствами и методами и есть куча классов потомков типа TChild1,TChild2,..,TChild20
Код:
type
TParent = class
parentProperty:string;
procedure initParent;
end;
type
TChild1 = class(TParent)
child1Property:string;
procedure initChild;
end;
type
TChild2 = class(TParent)
child2Property:string;
procedure initChild;
end;
//.....
type
TChild20 = class(TParent)
child20Property:string;
procedure initChild;
end;
допустим, есть ObjectList в который я добавил все экземпляры дочерних классов.
теперь я обращаюсь к i-му элементу ObjectList
Код:
var Obj:TParent;
//...
Obj:=ObjectList[i];
//я могу легко вызвать метод parentInit;
Obj.parentInit;
//но, чтобы вызвать метод childInit, мне уже приходиться делать тупо
if Obj.className='TChild1' then (Obj as TChild1).initChild;
if Obj.className='TChild2' then (Obj as TChild2).initChild;
//...
if Obj.className='TChild20' then (Obj as TChild20).initChild;
Вопрос: как это делать красивее?