Предположим, у меня есть два базовых класса: Container
и Gizmo
. Класс Container
имеет переменную экземпляра класса Gizmo
.Изменение класса ivar (на производный класс) в подклассе
Теперь подкласс Container
(называем это SubContainer
), и я также подкласс Gizmo
(SubGizmo
). В некоторых методах SubContainer
мне нужно отправить сообщение некоторым свойствам, которые Gizmo
не имеет, но SubGizmo
делает. Есть ли способ переопределить ivar для класса SubGizmo
в SubContainer
, чтобы я мог отправлять эти сообщения?
Прямо сейчас я могу заставить его работать, отбросив мой унаследованный ivar до SubGizmo
каждый раз, когда мне нужно использовать такое свойство или метод.
Вот почему я хочу такое поведение: у меня уже есть игра, которая работает, но чем больше режимов я добавляю, тем сложнее ее поддерживать. Если я хочу изменить/добавить метод, который будет работать в каждом режиме; Мне нужно будет перейти к трем различным объектам игрового контроллера и внести изменения.
Подклассированием я хотел сохранить основную игру в базовых классах и создать подкласс для каждого режима. таким образом изменение, которое я делаю в базовом классе, отразится на каждом режиме. Однако каждый контроллер и игровой объект имеют новые методы для разных режимов, и они отправляют сообщения друг другу. Именно здесь возникает моя проблема.
Программа была бы менее двусмысленной – justin
Я рад, что вы, похоже, одобряете мои имена классов; буквы плюс некоторое количество звезд были слишком тяжелыми для меня, чтобы отслеживать. :) –
@JacquesCousteau, который намного яснее :) – justin