AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.07.2006, 14:26   #1  
leva is offline
leva
Участник
 
52 / 36 (2) +++
Регистрация: 03.08.2005
Вызов родительского метода произвольного уровня
Как в методе-потомке вызвать метод-предок, но не непосредственный (super), а выше по иераррхии (например через одного).
В C++, например, это можно сделать так:
класс_предок::метод
А в аксапте я даже не догадываюсь... а как на яве? Может также.

Это понадобилось, когда в наследнике стало необходимо "перепрыгнуть" через один validate.
Старый 06.07.2006, 14:31   #2  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
полностью переопределить :-)
Старый 06.07.2006, 14:54   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Или написать на родителе метод, возвращающий родитель предыдущего уровня.

С Уважением,
Георгий
Старый 06.07.2006, 15:04   #4  
leva is offline
leva
Участник
 
52 / 36 (2) +++
Регистрация: 03.08.2005
Надеялся, что это можно сделать средствами языка. Интересно стало. Значит нет.
Хотя обходной путь с созданием метода на родителе подошел бы как вариант.

В моем же случае оказалось проще отнаследоваться от нужно мне класса, а не его наследника.
Старый 06.07.2006, 15:34   #5  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
А что есть использовать что-то вроде args().caller().caller() ?

Насколько я понимаю, Вы раньше С++ занимались?
Хм. Ну, в принципе, тогда быстро разберетесь
И еще: одно мааленькое отличие: в Х++ нет множественного наследования - только от 1го класса.

Удачи!

С Уважением,
Георгий
Старый 06.07.2006, 15:41   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
вызывать деда концептуально неверно, т.к. получается что код потомка зависит от того, как вы классифицируете предков.

чем-то напоминает goto.
Старый 06.07.2006, 16:35   #7  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от belugin
вызывать деда концептуально неверно, т.к. получается что код потомка зависит от того, как вы классифицируете предков.

чем-то напоминает goto.
Согласен.
Лучше писать методы на родителе и вызывать их.
Хоть в БП ничего по этому поводу и несказанно, но в стандартном функционале делают через методы.
Старый 06.07.2006, 16:58   #8  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Кроме ограничения на типизацию объектов в Axapte и, как следствие невозможность вызывать методы предка-предка, есть еще одно, на мой взгляд, более существенное ограничение.
В Ахарте нельзя вызвать ПРОИЗВОЛЬНЫЙ метод предка при создании метода в наследнике. Можно вызвать только ПЕРЕКРЫВАЕМЫЙ метод предка - super(). Все остальные методы вызываются только с использованием свойства полиморфизма - следовательно только методы самого наследника, а потом уже из них методы предка...
Старый 07.07.2006, 09:40   #9  
savel is offline
savel
Участник
 
74 / 13 (1) ++
Регистрация: 26.02.2004
Адрес: Санкт-Петербург
Цитата:
Сообщение от leva
Это понадобилось, когда в наследнике стало необходимо "перепрыгнуть" через один validate.
А не кажется Вам что это первый признак того, что при проектировании иерархии классов, было недодумано.....
И Ваш родитель и наследник должны быть братьями.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов метода element.args().caller().setOfficialsParams(.... Poleax DAX: Программирование 6 04.09.2008 19:49
вызов метода, динамически определённого на таблице wojzeh DAX: Программирование 3 01.08.2008 17:44
вызов метода из таблицы в операторе while select V777 DAX: Программирование 7 23.04.2008 09:11
вызов метода map belugin DAX: Программирование 2 26.06.2006 12:53
Com Connector и вызов статического метода Gorlum DAX: Программирование 2 11.08.2005 01:39

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:05.