ОБСУЖДЕНИЕ

Расширение метода класса... как?

6 ответов 5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Если создать класс b на основе класса a, то при инициализации сначала исполнится метод New класса a, а потом класса b. Как также сделать и для моих самописных методов? Т.е. если я хочу расширить метод MyPrint, то не копировать же мне код из класса а в класс b...
 
fedotxxl
отдельной процедурой зделайте
 
Кто тебе сказал, что A.New исполнится? :) если ты его явно не вызовешь из B.New, то он не исполнится...
любой метод объявленный в дочернем классе переопределяет метод предка, для того, чтобы выполнить метод предка, нужно его явно вызвать, для этого в LS используется такая конструкция:

ParentClassName..Method

ParentClassName - здесь любой из предков, но чаще всего именно прямой юзают,
Method - имя любого метода класса ParentClassName.

конструктор, правда, нужно вызвать немного иначе, это указано в хелпе:

Sub New [ ( [ argList ] ) ] [ , baseClass ( [ baseArgList ] ) ]
[ statements ]
End Sub
 
Конструктор ВСЕГДА будет исполняться сверху вниз. Мало того, в дочернем классе не пропишешь конструктор не указав шо передаются в конструктор родительского. Лотус тупо не даст. Так шо конструкторы ВСЕГДА вызываются сверху-вниз. Диструкторы ВСЕГДА идут в обратном порядке. И ничего прописывать не надо им ваще. по другому не бывает. Иначе это уже не ООП, а фигня какая-то :).

Для того чтобы в дочернем методе использовать метод родителя надо замутить "..". Как уже было указано.
 
о, айм сори :)
конструктор дочернего действительно всегда выполнит конструктор родительского... это обычные методы требуют явного вызова...
Миша всегда на страже ООП! респект :)
 
Как также сделать и для моих самописных методов?
Я в Лотусе не шарю, но разве речь идет о конструкторах? Наверное нужно некоторое подобие виртуальных методов

Прошу прощения, не заметил фразу:
Для того чтобы в дочернем методе использовать метод родителя надо замутить "..". Как уже было указано.
 

Статистика тем

Создано
fedotxxl,
Последний ответ от
Mihal,
Ответы
6
Просмотры
4 965