Изменения интерфейса для пользователей Visual Basic 6.0
Обновлен: Ноябрь 2007
Интерфейс, как определено в Visual Basic, является типом, который определяет список открытых членов. Невозможно создать экземпляр или реализацию типа Interface.
Интерфейс и классы
Интерфейс класса — это его список открытых членов. Оператор Interface в Visual Basic 2008 позволяет объявить тип, который определяет список открытых членов. Если класс включает оператор Implements, члены интерфейса добавляются с помощью реализации каждого члена интерфейса. Это отличается от наследования реализации с помощью ключевого слова Inherits. В наследовании реализации члены наследуются от базового класса и не должны реализовываться в производном классе.
В платформе .NET Framework интерфейсы часто используются классами для поддержки некоторых служб в приложении. Можно привести следующий пример такой поддержки в платформе .NET Framework: если класс реализует интерфейс System.IComparable, тогда среда выполнения сортирует экземпляры класса, если они содержатся в ArrayList.
Дополнительные сведения об использовании интерфейсов в Visual Basic 2008 см. в разделе Интерфейсы в Visual Basic.
Visual Basic 6.0
В Visual Basic 6.0 любой класс может действовать как интерфейс. Любой другой класс может реализовать интерфейс другого класса с помощью Оператор Implements, как показано ниже.
' Contents of class BaseClass
Public Sub BaseMethod()
End Sub
' Contents of class DerivedClass
Implements BaseClass
Private Sub BaseClass_BaseMethod()
End Sub
Отдельные члены класса могут содержать какой-либо код, хотя и не должны.
Visual Basic 2008
Visual Basic 2008 проводит более четкое различие между классами и интерфейсами. Первые объявляются в операторе Class; вторые — в операторе Interface. Класс не может действовать как интерфейс. Чтобы действовать как интерфейс, должен быть объявлен тип с помощью оператора Interface. Члены интерфейса не могут реализовываться. Фактически, синтаксис не разрешает такие строки кода, как End Sub, в определении интерфейса. Члены интерфейса реализуются в классе, который объявляет интерфейс с помощью оператора Implements:
Interface Printable
Sub Print()
Property Mode() As Integer
End Interface
Public Class Tree
Implements Printable
Private modeValue As Integer
Public Property Mode() As Integer Implements Printable.Mode
Get
Return modeValue
End Get
Set(ByVal Value As Integer)
modeValue = Value
End Set
End Property
Public Sub Print() Implements Printable.Print
' Add code to print a tree.
End Sub
End Class
Советы по обновлению
Наследование реализации в Visual Basic 6.0 возможно только с помощью оператора Implements и базового класса. В последних версиях Visual Basic имеется два типа наследования: наследование реализации и наследование интерфейса. Выбор типа зависит от приложения. Следует рассмотреть следующие вопросы:
Наследование реализации с помощью Инструкция Inherits позволяет создавать новые классы без написания дополнительного кода. Код добавляется только в том случае, если нужно изменить поведение базового класса. При наследовании интерфейса требуется добавить код для каждого члена базового класса.
Интерфейсы можно использовать, когда нужно наследовать от нескольких классов. Visual Basic 2008 поддерживает только наследование от одного класса, но класс может реализовать несколько интерфейсов.
.NET Framework определяет несколько интерфейсов, что упрощает общие задачи программирования. Примеры включают IComparable, ISerializable и IFormattable.
Для нескольких интерфейсов .NET Framework платформа.NET Framework также предоставляет класс, реализующий интерфейс. Примером является класс Component, который реализует интерфейс IComponent. При наследовании от Component с помощью Инструкция Inherits класс получает все возможности интерфейса IComponent без необходимости написания какого-либо кода.