Clases
Si está familiarizado con la programación orientada a objetos, sabrá que una clase define las operaciones que puede realizar un objeto (métodos, eventos o propiedades) y define un valor que guarda el estado del objeto (campos). Aunque una clase, por lo general, incluye la definición y la implementación, puede tener uno o varios elementos que no tienen implementación.
Una instancia de una clase es un objeto. A la funcionalidad de un objeto se tiene acceso llamando a sus métodos y teniendo acceso a sus propiedades, eventos y campos.
En la tabla siguiente se proporcionan las descripciones de algunas de las características que el motor de tiempo de ejecución permite que tengan las clases. En esta lista no se incluyen las características disponibles mediante las clases de Atributo. Un lenguaje concreto podría hacer que no estén disponibles todas estas características.
Característica | Descripción |
---|---|
sealed | Especifica que de este tipo no se puede derivar otro. |
implements | Indica que la clase utiliza una o varias interfaces proporcionando implementaciones de miembros de la interfaz. |
abstract | Especifica que no se puede crear una instancia de esta clase. Para utilizarla se debe derivar de ella otra clase. |
inherits | Indica que las instancias de la clase se pueden utilizar en cualquier lugar en que se especifique la clase base. Una clase derivada que hereda de una clase base puede utilizar la implementación de todos los métodos virtuales que proporciona la clase base o los puede reemplazar con su propia implementación. |
exported o not exported | Indica si una clase está visible fuera del ensamblado en el que se define. Sólo se aplica a las clases de nivel superior. |
Las clases anidadas tienen también características de miembro. Para obtener más información, vea Miembros de tipos.
Los miembros de clase que no tienen implementación son miembros abstractos. Una clase que tiene uno o varios miembros abstractos es abstracta y no se pueden crear nuevas instancias de ella. Algunos lenguajes cuyo destino es el motor de tiempo de ejecución permiten marcar una clase como abstracta incluso si no tiene ningún miembro abstracto. Se puede utilizar una clase abstracta cuando sea necesario encapsular un conjunto básico de funcionalidad que las clases derivadas pueden heredar o reemplazar según sea adecuado. Las clases que no son abstractas se conocen como clases concretas.
Una clase puede implementar cualquier número de interfaces, pero sólo puede heredar de una clase base. Todas las clases deben tener al menos un constructor, que inicializa nuevas instancias de la clase.
Cada lenguaje compatible con el motor de tiempo de ejecución proporciona una forma de indicar que una clase o un miembro de clase tiene características especiales. Cuando se utiliza la sintaxis que requiere un lenguaje, el lenguaje garantiza que las características de la clase y sus miembros se almacenan (como metadatos) junto con la implementación de la clase.
Vea también
Sistema de tipos común | Interfaces | System.Object | Metadatos