Здравствуйте.
Опишу кратко суть вопроса:
Пишу на VB .NET 2008 (использую .NET 2.0)
Есть прототип игры — А, является ехе файлом.
В А в коде используется класс Monster.
Есть библиотека В, в которой этот класс реализован.
Требуется:
Не изменяя А, реализовать в В класс-наследник от Monster,
в котором будут переопределены некоторые функции.
Поясню на примере.
Есть Monster. В нём например функция GetHurt(hp as Byte) — отвечает за получение монстром урона.
Требуется, сделать другого Monster1 (реализованного в классе В на основе Monster)
и переопределить функцию GetHurt(hp as Byte) например чтобы монстр после получения урона лечился на +1.
Проблема в том, что в А используется только класс Monster, который представляет разных монстров.
А реализацию этих отличий я хочу сделать в библиотеке В.
Если не понятно что хочу, спрашивайте, постараюсь пояснить
Напишу примерный код. Нужно чтобы в А всё работало без изменений.
А:
Private Sub makenewmonster(name as String)
If name="1" Then
Dim q As New Monster1
Monsters.Add(q)
Else
Dim q As New Monster2
Monsters.Add(q)
End If
End Sub
Private Sub checkmonsters()
For Each m As Monster In Monsters
If m.Life=0 Then
MsgBox("Монстр " & m.Name & " убит")
End If
Next
End Sub
B:
Public Class Monster
Public Name as string
Public Life as Byte
Public Overridable Sub GetHurt(hp as Byte)
Life=Life-hp
End Sub
End Class
Public Class Monster1
Inherits Monster
Public Overrides Sub GetHurt(hp as Byte)
Life=Life-hp
Life=Life+1
End Sub
End Class
Public Class Monster2
Inherits Monster
End Class
Стоп, отбой. Всё заработало! Видимо отвлёкся от кодинга, мозг заработал