Показать сообщение отдельно
Старый 26.11.2017, 23:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
internal var character:Character;
Ну так тип свойства то — Character. У него нет свойств CharacterHero, так?
Дело в том что компилятор то не знает, что ты запихал в свойство типа Характер ссылку на экземпляр ХарактерХеров. Он не отслеживает рантайм, он не телепат. Он видит что тип такой-то и у него нет свойства такого-то, вот и вся ошибка. Почему я не очень люблю наследование — постоянно надо кастовать, то есть объяснять компилятору, что дружить мы будем только с ХарактерХеров:
Код AS3:
(_heroModel.character as CharacterHero).'имя свойства'
(кажется, мы это уже проходили на Гендерах? Что ты можешь выдать ХарактерХеро за Характер, так как у него есть ВСЁ из Характера, но не наоборот)

Добавлено через 13 минут
Похоже, ты сейчас подходишь к наследованию слегка.. механически. Типа, "есть общие свойства — а соберу ка я их в суперкласс". Но не всё так просто. Надо подумать, зачем ты их собираешь в суперкласс, как это пригодится тебе в жизни (кроме очевидного неповторения строчек кода). Как они потом жить будут. Будешь ли ты использовать наследников вместо супера. А не наоборот. Наследование не дает тебе преимущества иметь переменную типа супер, запихать туда любого наследника и потом работать с ней так, как будто она наследник. Если у тебя переменная типа Характер, и в нее могут быть засунуты и Херо и Енеми, то беспрепятственно ты можешь обращаться только к тем свойствам, которые унаследованы от Характер. Иначе вообще было бы непонятно и бессмысленно называть это типизацией, если бы ты мог обращаться к типу Характер за свойствами, которых у него нет. Тебе придется создать переменную НУЖНОГО типа-наследника и перекастовать туда (то есть с проверкой) ссылку из переменной супертипа Характер. Чтобы знать ТОЧНО, что это наследник и стало быть у него есть эти свойства наследника.
__________________
Reality.getBounds(this);