Inherits Statement
Permite que la clase o interfaz actual herede los atributos, variables, propiedades, procedimientos y eventos de otra clase o conjunto de interfaces.
Sintaxis
Inherits basetypenames
Partes
Término | Definición |
---|---|
basetypenames |
Obligatorio. El nombre de la clase o la interfaz de la que se deriva esta clase. O bien Los nombres de las interfaces de las que deriva esta interfaz. Use comas para separar varios nombres. |
Comentarios
Si se usa, una instrucción Inherits
debe ser la primera línea no vacía sin comentarios en una definición de interfaz o clase. Debe ir inmediatamente detrás de la instrucción Class
o Interface
.
Solo se puede usar Inherits
en una clase o interfaz. Esto significa que el contexto de la declaración de una herencia no puede ser un archivo de código fuente, un espacio de nombres, una estructura, un módulo, un procedimiento ni un bloque.
Reglas
Herencia de clase. Si una clase usa la instrucción
Inherits
, solo se puede especificar una clase base.Una clase no puede heredar de una clase anidada dentro de ella.
Herencia de interfaz. Si una interfaz usa la instrucción
Inherits
, se puede especificar una o varias interfaces base. Se puede heredar de dos interfaces aunque definan un miembro con el mismo nombre. Si se hace, el código de implementación debe usar la calificación de nombre para especificar qué miembro se está implementando.Una interfaz no puede heredar de otra interfaz con un nivel de acceso más restrictivo. Por ejemplo, una interfaz
Public
no puede heredar de una interfazFriend
.Una interfaz no puede heredar de una interfaz anidada dentro de ella.
Un ejemplo de herencia de clases en .NET Framework es la clase ArgumentException, que hereda de la clase SystemException. Esto proporciona a ArgumentException todas las propiedades y procedimientos predefinidos requeridos por las excepciones del sistema, como la propiedad Message y el método ToString.
Un ejemplo de herencia de interfaz en .NET Framework es la interfaz ICollection, que hereda de la interfaz IEnumerable. Esto hace que ICollection herede la definición del enumerador necesario para recorrer una colección.
Ejemplo 1
En el ejemplo siguiente se usa la instrucción Inherits
para mostrar cómo una clase denominada thisClass
puede heredar todos los miembros de una clase base denominada anotherClass
.
Public Class thisClass
Inherits anotherClass
' Add code to override, overload, or extend members
' inherited from the base class.
' Add new variable, property, procedure, and event declarations.
End Class
Ejemplo 2
En el ejemplo siguiente se muestra la herencia de varias interfaces.
Public Interface thisInterface
Inherits IComparable, IDisposable, IFormattable
' Add new property, procedure, and event definitions.
End Interface
La interfaz denominada thisInterface
ahora incluye todas las definiciones de las interfaces IComparable, IDisposable y IFormattable. Los miembros heredados se proporcionan respectivamente para la comparación específica del tipo de dos objetos, la liberación de recursos asignados y la expresión del valor de un objeto como String
. Una clase que implementa thisInterface
debe implementar todos los miembros de cada interfaz base.