Основы офисного программирования и язык VBA


Наследование интерфейсов - часть 3


Объект родительского класса, ссылающийся на своего потомка, может вызывать методы родителя, наследуемые потомком. Вот небольшой пример, где действую объекты трех классов Father, Son и GrandSon, связанные отношением наследования интерфейсов. Пусть определен абстрактный класс Father, интерфейс которого состоит из одного свойства, одного чистого метода и метода с заданной реализацией:

'Class Father 'Свойства класса Public MyProperty As String

'Методы класса

Public Sub MyPureMethod() 'Чистый метод End Sub

Public Sub MyRealMethod() MsgBox ("It's the Father") End Sub

Класс Son, наследующий интерфейс класса Father, по контракту должен реализовать две процедуры - свойства и два его метода. Мы дали только формальную реализацию, - в созданные автоматически заготовки добавили комментарии. Лишь в реализацию метода Father_MyPureMethod класса Son вставлена строка текста. Кроме того, в класс добавлен новый метод, определяющий собственный интерфейс этого класса. Вот описание этого класса:

'Класс Son - Наследник класса Father Implements Father

Private Property Let Father_MyProperty(ByVal RHS As String) 'Реализация отложена

End Property

Private Property Get Father_MyProperty() As String 'Реализация отложена

End Property

Private Sub Father_MyPureMethod() MsgBox ("It's the Son")

End Sub

Private Sub Father_MyRealMethod() 'Реализация отложена

End Sub

Public Sub SonNewMethod() MsgBox ("It's the Son of his Father") End Sub

Пример 5.1.

Заметьте, что, конечно, можно в наследуемых методах изменить спецификатор Private на Public, и тогда эти методы войдут в интерфейс класса - потомка. Но лучше этого не делать, хотя бы потому, что наследование таких методов приведет к ошибке, - наследование наследуемых методов не допускается, как мы уже говорили. Правильный путь состоит в создании собственных Public методов, в которых при необходимости вызываются Private методы.

Приведем теперь описание класса GrandSon - потомка классов Son и Father. Заметьте, класс явно определяет обоих своих родителей.


Начало  Назад  Вперед



Книжный магазин