powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Интерфейсы
16 сообщений из 16, страница 1 из 1
Интерфейсы
    #35442414
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как создать интерфейс на ВБ?
...
Рейтинг: 0 / 0
Интерфейсы
    #35442612
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать класс с пустыми методами и пропертями.
...
Рейтинг: 0 / 0
Интерфейсы
    #35442660
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не обязательно пустыми, просто так обычно делают, чтобы подчеркнуть, что класс интерфейсный.
...
Рейтинг: 0 / 0
Интерфейсы
    #35442974
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял спасибо... а как наследовать? Простите...))) не знаю)))
...
Рейтинг: 0 / 0
Интерфейсы
    #35442980
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наследовать никак. Можно лишь реализовывать через Implements.
...
Рейтинг: 0 / 0
Интерфейсы
    #35442989
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть один класс реализует другой но при этом я могу оба использовать как экземпляр реализуемого?
...
Рейтинг: 0 / 0
Интерфейсы
    #35443067
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автороба использовать как экземпляр реализуемогоМутная фраза. Экземпляр (в моем понимании) = объект, объект можно создать из класса, но не из интерфейса.
...
Рейтинг: 0 / 0
Интерфейсы
    #35443092
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grayscale,
да, в общем. Пара замечаний:
1) см. моё замечание выше, т.е. реализуемый класс обычно не имеет реализации по умолчанию, оставаясь чисто интерфейсным - но этот обычай можно игнорировать;
2) тот класс, что реализует, надо приводить к реализуемому, чтобы обращаться к его методам/свойствам.
...
Рейтинг: 0 / 0
Интерфейсы
    #35444053
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо... Помучаюсь)))
...
Рейтинг: 0 / 0
Интерфейсы
    #35444088
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строго говоря, в COM (а любой класс VB6 - это COM-объект) всегда есть интерфейс у любого класса. Есть еще понятие "поставщик интерфейса". Поставщиком интерфейса может быть файл TLB. VB6 создает интерфейс автоматически, незаметно для программиста.
...
Рейтинг: 0 / 0
Интерфейсы
    #35445819
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffСтрого говоря, в COM (а любой класс VB6 - это COM-объект) всегда есть интерфейс у любого класса.Другое дело, что у не-вб классов интерфейс как правило скрыт.
...
Рейтинг: 0 / 0
Интерфейсы
    #35664142
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А такой вопрос...
есть класс test1
Код: plaintext
1.
2.
Public sub test()
end sub

есть класс test2 реализующий интерфейс.
Код: plaintext
1.
2.
3.
Implements test1
Private sub test1_test()
end sub

При этом методы закрытые и не совпадают по имени...
А как мне сделать что-нибудь нормальное?
Например как в школе учили круг - фигура, квадрат фигура у обоих метод нарисовать... Вызываем фигура анрисовать а что наплевать. Или VB так не дает?
...
Рейтинг: 0 / 0
Интерфейсы
    #35664199
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grayscale,
Надо привести экземпляр класса test2 к типу test1 и вызвать метод test:
Код: plaintext
1.
2.
3.
4.
Dim a As test2
Dim b As test1
Set a = New test2
Set b = a
b.test
Можно сделать приведение типов достаточно эффектно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function test1(ByVal obj As Object) As test1
 Set test1 = obj
End Function
'...
Sub Test123
 Dim a As test2
 Set a = New test2
 test1(a).test
End Sub
...
Рейтинг: 0 / 0
Интерфейсы
    #35664692
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял)))) Спасибо))) А так чтоб какой нибудь public метод был доступен как из экземплра класса так и из экземпляра приведенного к интерфейсу я так поним не сделать? Только заглушками?
...
Рейтинг: 0 / 0
Интерфейсы
    #35664780
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага.
...
Рейтинг: 0 / 0
Интерфейсы
    #35664863
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо)))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Интерфейсы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]