Итак, я настроил эту систему с базовым классом DisplayObject
.
У него есть метод Render
и список других DisplayObjects
как его детей. Он также содержит данные о различных матричных преобразованиях, но I не содержит данные о реальном чертеже. Вот почему метод Render
является виртуальным.
У меня тогда есть 2 класса. ColoredShape
и TexturedShape
каждый наследует от DisplayObject
и переопределяет метод Render
новым методом, начинающимся с
base.Render();
и затем выполняем код рисования.
Теперь я хочу вызвать Render
для всех потомков объекта после Рендеринг на родительском объекте завершен. Так что есть моя проблема. Если я сделаю
foreach (var child in Children) child.Render();
в конце метода Render
в классе DisplayObject
он будет выполнен до переопределения, так как это часть вызова base.Render()
, и если я вместо этого помещу этот код в подклассы, DisplayObject
сам по себе теряет эту функциональность и заставляет все будущие подклассы, наследуемые от него, реализовывать эту функцию вручную.