Len писал(а):
В модуле ObxStores в конце процедуры WriteRead есть строчка m:=s(Node). Как я понимаю, это приведение объекта предка к потомку. Я написал два модуля но приведение получается (притом неявное) только от потомка к предку (модуль Mod2 метод Start), в обратную сторону - никак.
Предка к потомку приводить нельзя, ведь в этом случае может произойти ошибка при попытке использования поля потомка у предка, у которого такого поля нет. А вот потомка использовать вместо предка можно. Это называется
Принцип подстановки Лисков.
Не изучал код этого ObxStores, но предполагаю, что там в качестве типа аргумента процедуры указан указатель на предка, передаётся туда адрес потомка, а потом этот потомок проверяется, что он -- действительно имеет тип потомка и производится явное преобразование к типу потомка. В таком случае ошибки при выполнении не должно быть...