Как реализовать Set Asubclass = Amasterclass

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

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Изучаю на практике ООП в LN и постоянно сталкиваюсь с проблемами из-за неграмотности
    Есть Мастер класс и классы, наследующие его.
    Хотелось бы создавать новый инстанс сабклассов при помощи одной функции (это часть моей подзадачи). Я определял переменную как Private ASubClass as ASubClass и писал что-то и вызывал функцию ABC, которая делал многое, но также инициировала новый инстанс ASubClass (не инициированный инстанс ASubClass передавался как параметр). Вот тут-то я и обломался. Код
    Код (Text):
    Function ABC(... Input_Object as AMasterClass...) as ...
    ...
    Set Input_Object = New AMasterClass
    ...
    End function
    к моему великому разочарованию не заработал... Никто не подскажет, как решить проблему?
     
  2. Yakov

    Yakov Гость

    Для: fedotxxl
    Переменной с типом подкласса нельзя присваивать значение переменной с типом суперкласса. Наоборот можно (и нужно, см. полиморфизм), а так нельзя. Почему? Потому что если клиент ожидает получить экземпляр подкласса, а ему дается экземпляр суперкласса, то клиент не сможет использовать методы подкласса, которых нет в суперклассе. Если же клиент ожидает суперкласс, то он гарантированно получит все необходимые методы, даже если ему "подсунуть" подкласс.
     
Загрузка...

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