Cambios en las interfaces para usuarios de Visual Basic 6.0

Actualización: noviembre 2007

Una interfaz, tal como se define en Visual Basic, es un tipo que define una lista de miembros públicos. No se pueden crear instancias para un tipo Interface ni implementarlo.

Interfaz y clases

La interfaz de una clase es su lista de miembros públicos. La instrucción Interface, en Visual Basic 2008, permite declarar un tipo que define una lista de miembros públicos. Cuando una clase incluye la instrucción Implements, agrega los miembros de la interfaz implementando cada miembro de la interfaz. Esto difiere de la herencia de implementación mediante la palabra clave Inherits. En la herencia de implementación, los miembros se heredan de la clase base y no tienen que ser implementados en la clase derivada.

En .NET Framework, las clases utilizan a menudo interfaces para proporcionar compatibilidad con algún servicio de la aplicación. Por ejemplo, en .NET Framework si una clase implementa la interfaz System.IComparable, el tiempo de ejecución ordenará las instancias de la clase si están contenidas en un objeto ArrayList.

Para obtener más información sobre cómo utilizar las interfaces en Visual Basic 2008, vea Interfaces en Visual Basic.

Visual Basic 6.0

En Visual Basic 6.0, cualquier clase puede actuar como una interfaz. Cualquier otra clase puede implementar la interfaz de otra clase, mediante Implements (Instrucción), tal como se muestra abajo.

' Contents of class BaseClass
Public Sub BaseMethod()
End Sub

' Contents of class DerivedClass
Implements BaseClass
Private Sub BaseClass_BaseMethod()
End Sub

Aunque los miembros individuales de la clase no tienen por qué contener código, es posible que lo hagan.

Visual Basic 2008

Visual Basic 2008 marca una clara diferencia entre clases e interfaces. Una se declara en una instrucción Class; la otra se declara en una instrucción Interface. Una clase no puede actuar como una interfaz. Para actuar como una interfaz, se debe declarar el tipo utilizando Interface. No se implementan los miembros de una interfaz. De hecho, la sintaxis no permite líneas de código como End Sub en una definición de interfaz. Los miembros de una interfaz se implementan en la clase que declara una interfaz mediante la instrucción 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

Sugerencias de actualización

La única opción para implementar la herencia en Visual Basic 6.0 es utilizar la instrucción Implements y una clase base. En versiones más recientes de Visual Basic, hay dos tipos de herencia: la herencia de implementación y la herencia de interfaces. El tipo que debe seleccionar depende de su aplicación. Entre las cuestiones que se deben tener en cuenta se incluyen:

  • La herencia de implementación, mediante Inherits (Instrucción), permite crear nuevas clases sin tener que escribir más código. Sólo agrega código cuando desea modificar el comportamiento de la clase base. Con la herencia de interfaces, tiene que agregar código para cada miembro de la clase base.

  • Se pueden utilizar interfaces para heredar de más de una clase. Visual Basic 2008 sólo admite la herencia de una clase, pero una clase puede implementar varias interfaces.

  • En .NET Framework se definen varias interfaces que simplifican tareas de programación habituales. Entre los ejemplos se incluyen IComparable, ISerializable y IFormattable.

  • Para muchas interfaces de .NET Framework, .NET Framework también proporciona una clase que implementa la interfaz. Un ejemplo lo constituye la clase Component que implementa la interfaz IComponent. Al heredar de Component mediante Inherits (Instrucción), una clase logra todas las características de la interfaz IComponent sin tener que escribir ningún código.

Vea también

Referencia

Instrucción Interface (Visual Basic)

Instrucción Class (Visual Basic)

Inherits (Instrucción)