Показать сообщение отдельно
Старый 16.11.2016, 15:22   #15
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений
(для 369 пользователей)
Ответ: Статистический полиморфизм?

Ты у неё спроси, а вот это полиморфизм?
#define isdog 1
#define iscat 2


Type animal
    Public:
    speak As Sub()
    Declare Constructor (anid As Integer)    
End Type

'Speak метод для объекта dog(собаки)
Sub Bark()
    Print "Woof!"
End Sub

'Speak метод для объекта cat(кошки)
Sub Meow()
    Print "Meow!"
End Sub

'Установим указатель правильного метода, основанный на id животного
Constructor animal(anid As Integer)
    If anid = isdog Then
        this.speak = @Bark
    ElseIf anid = iscat Then
        this.speak = @Meow
    End If
End Constructor

'Создание объектов dog и cat
Dim myDog As animal = isdog
Dim mycat As animal = iscat

'Вывод того, что произносят животные
Print "My dog says ";
myDog.speak()
Print "My cat says ";
myCat.speak()

Sleep
End

Последний раз редактировалось DarkInside, 16.11.2016 в 16:37.
(Offline)
 
Ответить с цитированием