ОБСУЖДЕНИЕ

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

1 ответов 3,4 тыс.
AI-выжимка обсуждения скоро

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

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

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

Создано
fedotxxl,
Последний ответ от
Yakov,
Ответы
1
Просмотры
3 431