Implements (Instrucción)

Actualización: noviembre 2007

Especifica una o más interfaces o miembros de interfaz que se deben implementar en la definición de clase o estructura en la que aparecen.

Implements interfacename [, ...]
-or-
Implements interfacename.interfacemember [, ...]

Partes

  • interfacename
    Obligatorio. Una interfaz cuyas propiedades, procedimientos y eventos deben implementarse por los miembros correspondientes de la clase o estructura.

  • interfacemember
    Obligatorio. El miembro de una interfaz que se va a implementar.

Comentarios

Una interfaz es una colección de prototipos que representan los miembros (propiedades, procedimientos y eventos) que encapsula la interfaz. Las interfaces sólo contienen las declaraciones para miembros. Las clases y estructuras implementan estos miembros.

La instrucción Implements debe incluirse inmediatamente a continuación de las instrucciones Class o Structure.

Cuando implementa una interfaz, debe implementar todos los miembros declarados en la interfaz. Se considera un error de sintaxis omitir cualquier miembro. Para implementar un miembro concreto, se especifica la palabra clave Implements (Visual Basic) (que es independiente de la instrucción Implements) al declarar el miembro en la clase o la estructura. Para obtener más información, vea Palabra clave Implements e instrucción Implements.

Las clases pueden utilizar implementaciones Private (Visual Basic) de propiedades y procedimientos, pero estos miembros sólo son accesibles convirtiendo una instancia de la clase que se implementa en una variable declarada para ser del tipo de la interfaz.

Ejemplo

El ejemplo siguiente muestra cómo utilizar la instrucción Implements para implementar miembros de una interfaz. Define una interfaz denominada ICustomerInfo con un evento, una propiedad y un procedimiento. La clase customerInfo implementa todos los miembros definidos en la interfaz.

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 la clase customerInfo utiliza la instrucción Implements de una línea de código fuente independiente para indicar que la clase implementa todos los miembros de la interfaz ICustomerInfo. A continuación, cada miembro de la clase utiliza la palabra clave Implements como parte de su declaración de miembro para indicar que implementa ese miembro de interfaz.

Los dos procedimientos siguientes muestran cómo se podría utilizar la interfaz implementada en el ejemplo anterior. Para comprobar la implementación, agregue estos procedimientos al proyecto e invoque el procedimiento testImplements.

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

Vea también

Conceptos

Cómo proporciona Visual Basic polimorfismo

Referencia

Implements (Visual Basic)

Instrucción Interface (Visual Basic)

Otros recursos

Interfaces en Visual Basic

Polimorfismo