Наследование реализации находится над рейтингом и почти всегда заканчивается со сложными конструкциями.
Что вы хотите сделать достижения (обеспечить базовые осущ, уменьшить повторение кода в производных классах, и т.д.) может быть сделано с составом и событий
Рассмотрим интерфейс IBase
Public Function GetArea() As Double
End Function
интерфейс IDerived
Property Get Base() As IBase
End Property
Общая реализация StdBaseImpl
от IBase
Implements IBase
Event CustomizeArea(Value As Double)
Public Function GetArea() As Double
GetArea = 42
RaiseEvent CustomizeArea(GetArea)
End Function
Private Function IBase_GetArea() As Double
IBase_GetArea = GetArea
End Function
Тогда для производных классов, которые вы используете композицию и выбрать, какие базовые события для реализации
Implements IDerived
Private WithEvents m_oBase As StdBaseImpl
Private Property Get IDerived_Base() As IBase
Set IDerived_Base = m_oBase
End Property
Private Sub m_oBase_CustomizeArea(Value As Double)
Value = Value + 10
End Sub
Вы можете создать базы с BeforeXxx
+ Cancel
и AfterXxx
событий. Вы можете разорвать несколько баз и скоординировать их.
Нет простого способа. Вот некоторые ссылки на описания некоторых обходных решений. [Журнал MSDN] (http://msdn.microsoft.com/en-us/library/aa260821 (v = vs.60) .aspx) и [Rockford Lhotka] (http://www.lhotka.net/Article. ASPX? ID = 5f76a91c-5a75-49e1-9379-6d2807653b68). – MarkJ