|
|
#1 |
|
Участник
|
Абстрактные методы
Имеем некую иерархию классов
class1->class2 У каждого класса определен метод void calculate() { ... /* любой код*/ } У class1 есть метод void init() { this.calculate(); } Вопрос: каким образом будет выглядеть последовательность вызова методов? (я пропускаю вызов конструкторов и деструкторов) static void job1(Args _args) { class2 cl2; cl2 = new class2(); cl2.init(); } class2\init(); class1\init(); class1\calculate(); или class2\init(); class1\init(); class2\calculate(); Нужно ли для второго случая объявлять метод calculate() как abstract у первого класса? |
|
|
|
|
#2 |
|
Moderator
|
Цитата:
class2\init();
class1\init(); class1\calculate(); или class2\init(); class1\init(); class2\calculate(); |
|
|
|
|
#3 |
|
Участник
|
кажись
class2\init(); class1\init(); class1\calculate(); при условии, что class2 не переопределяет метод calculate() |
|
|
|
|
#4 |
|
Moderator
|
Цитата:
при условии, что class2 не переопределяет метод calculate()
Цитата:
У каждого класса определен метод
void calculate() { ... /* любой код*/ } |
|
|
|
|
#5 |
|
Moderator
|
Кстати такие вопросы быстрее проверить, чем ждать ответа на форуме...
|
|
|
|
|
#6 |
|
Участник
|
Цитата:
Изначально опубликовано Андре
Кстати такие вопросы быстрее проверить, чем ждать ответа на форуме...
ЗЫ: лично у себя я заметил интересную особенность. как только я задаю вопрос на форуме, практически сразу ко мне приходит "озарение" в виде ответа, и становится ужасно стыдно за себя, что не "дожал" сам и обратился запомощью. |
|
|
|
|
#7 |
|
Участник
|
Цитата:
Изначально опубликовано Андре
У каждого класса определен метод void calculate() тада согласен с тобой.. и с тем, что быстрее проверить)).. |
|
|
|
|
#8 |
|
Moderator
|
Цитата:
но у начинающего программиста, тем более если его насильно пересадили с одноэса на Х++, такие вещи вызывают непонимание. И где же ему набраться опыта, как не на форумах.
- решить такие вопросы одним звонком гораздо быстрее
|
|
|
|
|
#9 |
|
Участник
|
Цитата:
Изначально опубликовано Андре
Сергей, как я понимаю в одном офисе сидим - решить такие вопросы одним звонком гораздо быстрее
А вообще я понял. Абстрактными методами мы пользуемся, если класс-потомок должен ОБЯЗАТЕЛЬНО переопределить какой-нибудь метод. Например, в RunBaseReport есть абстрактный метод lastValueElementName, в котором нужно вернуть имя отчета. |
|
|
|
|
#10 |
|
Участник
|
Цитата:
Изначально опубликовано Dubinski Serguei
если его насильно пересадили с одноэса на Х++, Если бы насильно после Х++ пересадили за 1С - эт было бы хуже)).. Цитата:
Изначально опубликовано Dubinski Serguei
Я, например, нашел здесь много интересного для себя. И, надеюсь, эта информация тоже будет кому-нибудь полезной. |
|
|
|
|
#11 |
|
Moderator
|
Цитата:
Абстрактными методами мы пользуемся, если класс-потомок должен ОБЯЗАТЕЛЬНО переопределить какой-нибудь метод.
Можно сказать, что это аналог java-ого интерфейса - то есть мы задаем тот минимальный набор методов, которые все потомки ОБЯЗАНЫ реализовать. |
|
|
|
|
#12 |
|
Moderator
|
Цитата:
не для асов ООП, конечно. Но, когда только лишь теоретические знания про ООП, или же полученные от Delphi - то вопрос заставляет призадуматься)).
Насколько я помню, Аксапта, Дельфи и Java - каждый чуть-чуть по своему реализуют механизм вызовов виртуальных методов - и если попробовать воспользоваться имеющимся опытом можно здорово ошибиться.
|
|
|
|
|
#13 |
|
Участник
|
Цитата:
Изначально опубликовано Андре
Можно сказать, что это аналог java-ого интерфейса - то есть мы задаем тот минимальный набор методов, которые все потомки ОБЯЗАНЫ реализовать. |
|
|
|
|
#14 |
|
Moderator
|
Цитата:
и что, все методы, описанные в интерфейсе обязательно должны быть реализованы в классе или классах?
p.s. Я всего лишь провел аналогию с интерфейсом. |
|
|
|
|
#15 |
|
Участник
|
все, спс, с абстрактными метода все понятно..
посмотрим, что будет, когда дойдет до использования на практике :-) |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Методы таблицы в DataSources (DAX4) | 2 | |||
| Найти display методы | 12 | |||
| Слетают методы на полях в датасорсе... как бороться? | 6 | |||
| display-методы в группах | 2 | |||
| edit и display методы | 4 | |||
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|