Información detallada: reemplazar miembros

Actualización: noviembre 2007

En esta lección, aprenderá a reemplazar un miembro de una clase derivada.

En la lección anterior, aprendió a heredar de una clase base y a extender la clase derivada con nuevas propiedades. Además de agregar nuevas propiedades o métodos a una clase derivada, también es posible que desee cambiar, o reemplazar, el comportamiento de propiedades o métodos existentes.

Por ejemplo, podría crear una clase Truck que se derive de una clase Car con un método StartEngine. Si el objeto Truck tiene un motor diesel, el proceso de encendido del motor puede ser distinto al de un objeto Car; en este caso, puede que desee reemplazar el método StartEngine para que se adapte mejor al objeto Truck.

Reemplazar propiedades y métodos

De manera predeterminada, no se pueden reemplazar las propiedades ni los métodos en una clase. Para permitir que una clase derivada reemplace una propiedad o un método, se debe marcar como reemplazable declarándolo con la palabra clave Overridable.

Public Overridable Property EngineType As String

Public Overridable Sub StartEngine(ByVal EngineType As String)

Al heredar de una clase base, las propiedades y los métodos que están marcados como Overridable se pueden utilizar tal como están o se pueden modificar para satisfacer las necesidades del usuario declarándolos con la palabra clave Overrides.

Public Overrides Property EngineType As String

Public Overrides Sub StartEngine(ByVal EngineType As String)

En la clase Players que se creó en la lección anterior, puede que se desee reemplazar el método FullName para incluir el número del jugador y eliminar el código que devuelve un segundo nombre.

Inténtelo

Para reemplazar el método FullName

  1. Abra el proyecto Persons que creó en la lección anterior. Si no lo guardó, vuelva a la lección anterior, Generar una clase a partir de una clase existente: utilización de la herencia, y complete los procedimientos.

  2. En el Explorador de soluciones, seleccione el nodo Persons.vb y, en el menú Ver, elija Código.

  3. En el Editor de código, modifique la declaración del método FullName de la siguiente manera.

    Public Overridable Function FullName() As String
    
  4. En el Explorador de soluciones, seleccione el nodo Players.vb y, en el menú Ver, elija Código.

  5. En el Editor de código, agregue el siguiente código a la clase.

    Public Overrides Function FullName() As String
        FullName = FirstName & " " & LastName & ", #" & numberValue
    End Function
    
  6. En el Explorador de soluciones, seleccione el nodo Form1.vb en el proyecto PlayerTest y, a continuación, en el menú Ver, elija Código.

  7. En el Editor de código, modifique el código de evento Button1_Click de la siguiente manera.

    MsgBox(player1.Position & " " & player1.FullName & _
          " is now at bat.")
    
  8. Modifique el código de evento Button2_Click de la siguiente manera.

    MsgBox(player2.Position & " " & player2.FullName & _
          " is on deck.")
    
  9. Presione F5 para ejecutar el programa y haga clic en cada botón para mostrar los resultados.

    Observe que los resultados son los mismos que antes, aun cuando ahora se está utilizando el método FullName reemplazado.

  10. En el menú Archivo, elija Guardar todo.

Pasos siguientes

En esta lección, aprendió a reemplazar un método. En la siguiente lección, aprenderá a utilizar las colecciones para administrar grupos de objetos similares.

Siguiente lección: Usar colecciones para administrar varios objetos

Vea también

Tareas

Generar una clase a partir de una clase existente: utilización de la herencia

Referencia

Overridable

Overrides