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

Тема в разделе "Lotus - Программирование", создана пользователем fedotxxl, 25 авг 2008.

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Если создать класс b на основе класса a, то при инициализации сначала исполнится метод New класса a, а потом класса b. Как также сделать и для моих самописных методов? Т.е. если я хочу расширить метод MyPrint, то не копировать же мне код из класса а в класс b...
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    fedotxxl
    отдельной процедурой зделайте
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Кто тебе сказал, что A.New исполнится? :) если ты его явно не вызовешь из B.New, то он не исполнится...
    любой метод объявленный в дочернем классе переопределяет метод предка, для того, чтобы выполнить метод предка, нужно его явно вызвать, для этого в LS используется такая конструкция:

    ParentClassName..Method

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

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

    Sub New [ ( [ argList ] ) ] [ , baseClass ( [ baseArgList ] ) ]
    [ statements ]
    End Sub
     
  4. Mihal

    Mihal Гость

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

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    о, айм сори :)
    конструктор дочернего действительно всегда выполнит конструктор родительского... это обычные методы требуют явного вызова...
    Миша всегда на страже ООП! респект :)
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Я в Лотусе не шарю, но разве речь идет о конструкторах? Наверное нужно некоторое подобие виртуальных методов

    Прошу прощения, не заметил фразу:
     
  7. Mihal

    Mihal Гость

    Полностью на страже ООП я буду када IBM, блин, замутить возможность деланья дочернего класса к NotesDocument. Вот тада я развернусь!
     
Загрузка...

Поделиться этой страницей