![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Есть СуперКласс и НаследникКласс.
СуперКласс определяет метод testMethod( ), а НаследникКласс его переопределяет. Могу ли я как-то вызвать над экземпляром класса НаследникКласс непереопределенный метод testMethod( ) класса СуперКласс? т.е. экземплярНаследникКласс.testMethod( ) - вызывается переопределенный метод а экземплярНаследникКласс.что-то-как-то.testMethod( ) - вызывает непереопределенный метод. Мне казалось, что должно сработать через приведение: СуперКласс(экземплярНаследникКласс).testMethod( ) Но это не работает, а так хотелось)))
__________________
скриптограф |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
в НаследникКласс нужно вызвать super.testMethod() - это и будет непереопределенный метод СуперКласс'а
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
не-не-не... мне нужно не в классе его вызывать, а снаружи над экземпляром, т.е. иметь возможность вызывать обе версии метода над экземпляром
__________________
скриптограф |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Цитата:
Для примера возьмем toString( ). Есть стандартный toString( ) для Object. Для нашего класса определим свой toString( ), для подкласса тоже свой и т.д. Получаем, что для одного экземпляра можно было бы вызывать любой toString( ) через приведение: trace(instance); trace(SuperClass(instance)); trace(Object(instance)); Живой пример: Есть класс, представляющий структуру данных, например, таблицу - Table. Метод toString( ) делает строку из элементов этой таблицы. Есть расширяющий класс субтаблица (фрагмент таблицы) SubTable - по сути та же таблица, хранящая вместо элементов или значений ссылки (индексы) на ячейки основной таблицы, т.е., работая с субтаблицей, мы по сути работаем с исходной таблицей, но только в окрестностях, ограниченных нашей субтаблицей. В классе SubTable, если не переопределять toString( ), будет получаться строка ссылочных индексов на исходную таблицу, но логично будет его переопределить так, чтобы выдавалась строка конечных значений таблицы в окрестности субтаблицы. Тогда мы могли бы выводить значения ячеек субтаблицы через trace(subtable); а саму фактическую таблицу (т.е. таблицу индексов, ссылающихся на исходную таблицу, через которые описывается связь субтаблицы и примарной таблицы) через trace(Table(subtable)); Красиво же)))
__________________
скриптограф |
|
|||||
|
красиво будет сделать метод, в который передаются индексы субтаблиц (или как там у вас устроено), которые нужно получить в виде строки и ещё один метод для получения строки всех таблиц, который, кстати, будет дёргать метод с индексами.
мне по крайней мере видится так (: |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
ну если через namespace, а может и не получится..
|
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
Это на виртуальные методы по описанию похоже. В AS3 хоть и есть ключевое слово virtual, только вот оно не работает. В википедии про виртуальные функции написано и в инете есть примеры на AS3, где они не работают.
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
нет, так тоже не работает
__________________
скриптограф |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:09. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|