Declaração de implementos
Especifica uma ou mais interfaces, ou membros da interface, que devem ser implementados na definição de classe ou estrutura na qual aparece.
Sintaxe
Implements interfacename [, ...]
' -or-
Implements interfacename.interfacemember [, ...]
Partes
interfacename
Obrigatório. Uma interface cujas propriedades, procedimentos e eventos devem ser implementados pelos membros correspondentes na classe ou estrutura.
interfacemember
Obrigatório. O membro de uma interface que está sendo implementada.
Observações
Uma interface é uma coleção de protótipos que representam os membros (propriedades, procedimentos e eventos) que a interface encapsula. As interfaces contêm apenas as declarações para os membros; classes e estruturas implementam esses membros. Para obter mais informações, consulte Interfaces.
A Implements
declaração deve seguir-se imediatamente à Class
declaração ou Structure
declaração.
Ao implementar uma interface, você deve implementar todos os membros declarados na interface. Omitir qualquer membro é considerado um erro de sintaxe. Para implementar um membro individual, especifique a palavra-chave Implements (que é separada da Implements
instrução) quando declarar o membro na classe ou estrutura. Para obter mais informações, consulte Interfaces.
As classes podem usar implementações privadas de propriedades e procedimentos, mas esses membros são acessíveis somente convertendo uma instância da classe de implementação em uma variável declarada como sendo do tipo da interface.
Exemplo 1
O exemplo a seguir mostra como usar a Implements
instrução para implementar membros de uma interface. Ele define uma interface nomeada ICustomerInfo
com um evento, uma propriedade e um procedimento. A classe customerInfo
implementa todos os membros definidos na interface.
Public Interface ICustomerInfo
Event UpdateComplete()
Property CustomerName() As String
Sub UpdateCustomerStatus()
End Interface
Public Class customerInfo
Implements ICustomerInfo
' Storage for the property value.
Private customerNameValue As String
Public Event UpdateComplete() Implements ICustomerInfo.UpdateComplete
Public Property CustomerName() As String _
Implements ICustomerInfo.CustomerName
Get
Return customerNameValue
End Get
Set(ByVal value As String)
' The value parameter is passed to the Set procedure
' when the contents of this property are modified.
customerNameValue = value
End Set
End Property
Public Sub UpdateCustomerStatus() _
Implements ICustomerInfo.UpdateCustomerStatus
' Add code here to update the status of this account.
' Raise an event to indicate that this procedure is done.
RaiseEvent UpdateComplete()
End Sub
End Class
Observe que a classe customerInfo
usa a Implements
instrução em uma linha de código-fonte separada para indicar que a classe implementa todos os membros da ICustomerInfo
interface. Em seguida, cada membro da classe usa a Implements
palavra-chave como parte de sua declaração de membro para indicar que implementa esse membro da interface.
Exemplo 2
Os dois procedimentos a seguir mostram como você pode usar a interface implementada no exemplo anterior. Para testar a implementação, adicione esses procedimentos ao seu projeto e chame o testImplements
procedimento.
Public Sub TestImplements()
' This procedure tests the interface implementation by
' creating an instance of the class that implements ICustomerInfo.
Dim cust As ICustomerInfo = New customerInfo()
' Associate an event handler with the event that is raised by
' the cust object.
AddHandler cust.UpdateComplete, AddressOf HandleUpdateComplete
' Set the CustomerName Property
cust.CustomerName = "Fred"
' Retrieve and display the CustomerName property.
MsgBox("Customer name is: " & cust.CustomerName)
' Call the UpdateCustomerStatus procedure, which raises the
' UpdateComplete event.
cust.UpdateCustomerStatus()
End Sub
Sub HandleUpdateComplete()
' This is the event handler for the UpdateComplete event.
MsgBox("Update is complete.")
End Sub