Escolar Documentos
Profissional Documentos
Cultura Documentos
Net es compatible con la herencia, la capacidad de definir clases que sirvan como base para las clases derivadas. Las clases derivadas heredan, y pueden extender, las propiedades, mtodos y eventos de la clase base. Las clases derivadas tambin pueden reemplazar mtodos heredados con nuevas implementaciones. De forma predeterminada, todas las clases creadas con Visual Basic .NET se pueden heredar. La herencia permite escribir y depurar una clase una vez, y despus volver a utilizar ese cdigo una y otra vez como base de nuevas clases. La herencia tambin permite utilizar el polimorfismo basado en la herencia, la posibilidad de definir clases que pueden utilizarse de forma intercambiable mediante cdigo cliente en tiempo de ejecucin, pero con funcionalidad diferente, incluyo con mtodos o propiedades denominados de manera idntica. La instruccin Inherits La instruccin Inherits se utiliza para declarar una nueva clase, denominada clase derivada, basada en una clase existente conocida como clase base. Las clases derivadas heredan, y pueden extender, las propiedades, mtodos, eventos, campos y constantes definidos en la clase base. En la siguiente seccin se describen algunas de las reglas de herencia, as como los modificadores que se pueden utilizar para cambiar la forma en que las clases heredan o son heredadas: De forma predeterminada, todas las clases son heredables a menos que se marquen con la palabra clave NotInheritable. Las clases pueden heredar de otras clases del proyecto o de clases en otros ensamblados a los que hace referencia el proyecto. A diferencia de los lenguajes que permiten la herencia mltiple, Visual Basic .NET slo permite la herencia simple en las clases; es decir, las clases derivadas slo pueden tener una clase base. Aunque no se permite la herencia mltiple en las clases, stas pueden implementar mltiples interfaces, lo que permite lograr de manera eficaz los mismos fines. Para evitar la exposicin de elementos restringidos en una clase base, el tipo de acceso de una clase derivada debe ser igual o ms restrictivo que el de su clase base. Por ejemplo, una clase Public no puede heredar una clase Friend o Private, y una clase Friend no puede heredar una clase Private.
Modificadores de herencia
Visual Basic .Net presenta las siguientes instrucciones y modificadores de nivel de clase para ofrecer compatibilidad con la herencia: Instruccin Inherits: especifica la clase base. Modificador NotInheritable: impide que los programadores utilicen la clase como clase base. Modificador MustInherit: especifica que la clase slo se debe utilizar como clase base. Las instancias de las clases MustInherit no se pueden crear directamente; slo se pueden crear como instancias de clase base de una clase derivada. Otros lenguajes de programacin, como C++ y C#, utilizan el trmino clase abstracta para describir tal clase.
End Function. Los mtodos MustOverride deben declararse en las clases MustInherit.
En la lista siguiente se describen las restricciones de uso de MyBase: MyBase hace referencia a la clase base inmediata y a sus miembros heredados. No se puede utilizar para tener acceso a miembros Private de la clase. MyBase es una palabra clave, no un objeto real. MyBase no se puede asignar a una variable, pasar a procedimientos ni utilizar en una comparacin Is. No es necesario definir el mtodo al que califica MyBase en la clase base inmediata; puede definirse en una clase base heredada indirectamente. Para compilar correctamente una referencia calificada mediante MyBase, alguna clase base debe contener un mtodo correspondiente al nombre y el tipo de los parmetros que aparezcan en la llamada.
No puede utilizar MyBase para llamar a mtodos de clase base con el modificador MustOverride.
No se puede utilizar MyBase para calificarse a s misma. Por tanto, el siguiente cdigo no es vlido:
MyBase.MyBase.BtnOK_Click()
No se puede utilizar MyBase en mdulos. No se puede utilizar MyBase para tener acceso a miembros de clase base marcados como Friend si la clase base est en un ensamblado diferente.
lblTitulo.Text = "Clientes - Herencia en Visual Basic .Net" 'Especificar el origen del Grid 'La funcin: CrearDataSet se encuentra en el 'formulario frmPlantilla que es del cual se hereda dgClientes.DataSource = CrearDataSet.Tables("Clientes") dgClientes.CaptionText = "Clientes Registrados" 'Darle formato al Grid FormatearGrid()
End Sub
Note en la porcin de cdigo anterior la lnea: dgClientes.DataSource = CrearDataSet.Tables("Clientes") en esta instruccin se ejecuta la funcin CrearDataSet implementada en la clase Base. La lnea de definicin de la clase derivada es como sigue:
Public Class frmClientesGrid Inherits VBHerencia.frmPlantilla
Los pasos para crear un formulario heredado son los siguientes: 1. Botn derecho en el Proyecto, seleccionar Agregar, luego Agregar formulario heredado... se muestra lo siguiente:
Al crearse el formulario heredado para nuestro ejemplo aparece con el siguiente diseo visto desde el IDE, en este hemos insertado un Grid, note los identificadores de los controles que pertenecen a la clase Base.
' Formato para las columnas Dim Col01 As New DataGridTextBoxColumn With Col01 .HeaderText = "Id. Cliente " .MappingName = "CustomerID" .Width = 70 End With
Dim Col02 As New DataGridTextBoxColumn With Col02 .HeaderText = "Compaa" .MappingName = "CompanyName" .Width = 200 End With
Dim Col03 As New DataGridTextBoxColumn With Col03 .HeaderText = "Contacto" .MappingName = "ContactName" .Width = 150 End With
Dim Col04 As New DataGridTextBoxColumn With Col04 .HeaderText = "Direccin" .MappingName = "Address" .Width = 180 End With 'Aadir los estilos de columnas al estiloTabla EstiloTabla.GridColumnStyles.AddRange _ (New DataGridColumnStyle() _ {Col01, Col02, Col03, Col04}) 'Aadir el estilo al Grid dgClientes.TableStyles.Add(EstiloTabla) End Sub