Classes no Common Type System
Se você estiver familiarizado com programação orientada a objetos, você sabe que uma classe define as operações que um objeto pode executar (métodos, eventos, ou propriedades) e define um valor que contém o estado do objeto (campos).Embora uma classe geralmente inclua tanto a definição quanto a implementação, ela pode ter um ou mais membros que não possuem implementação.
Uma instância de uma classe é um objeto.Você acessa as funcionalidades de um objeto chamando seus métodos e acessando suas propriedades, eventos, e campos.
A tabela a seguir fornece uma descrição de algumas das características que o tempo de execução permite para uma classe.(Características adicionais que estão disponíveis através de classes de Atributos não são incluídas nesta lista.) Sua linguagem pode não tornar todas essas características disponíveis.
Característica |
Descrição |
---|---|
autenticada |
Especifica que outro tipo não pode ser derivado desse tipo. |
implementa |
Indica que a classe usa uma ou mais interfaces, fornecendo implementações de membros da interface. |
abstrata |
Especifica que você não pode criar uma instância da classe.Para usá-la, você deve derivar outra classe a partir dela. |
herda |
Indica que as instâncias da classe podem ser usadas em qualquer lugar em que a classe base for especificada.Uma classe derivada que herda de uma classe base pode usar a implementação de qualquer método virtual fornecido pela classe base, ou a classe derivada pode substituí-los com sua própria implementação. |
exportada ou não exportada |
Indica se uma classe está visível fora do Assembly em que ela está definida.Só se aplica a classes de alto nível. |
Classes aninhadas também têm características membros.Para mais informações, consulte Membros de Tipos.
Membros da classe que não têm implementação são membros abstratos.Uma classe que tenha um ou mais membros abstratos é ela própria abstrata; não é possível criar novas instâncias dessa classe.Algumas linguagens que direcionam o tempo de execução permitem que você marque uma classe como abstrata mesmo que nenhum de seus membros seja abstrato.Você pode usar uma classe abstrata quando você precisar encapsular um conjunto básico de funcionalidades que as classes derivadas podem herdar ou substituir quando for apropriado.Classes que não são abstratas são chamadas de classes concretas.
Uma classe pode implementar qualquer número de interfaces, mas ela pode herdar apenas da uma classe base.Todas as classes devem ter pelo menos um construtor, que inicializa novas ocorrências da classe.
Cada linguagem com suporte ao tempo de execução fornece uma maneira para indicar que uma classe ou membros da classe tem características específicas.Quando você usa a sintaxe exigida pela sua linguagem, a linguagem garante que as características da classe e seus membros são armazenados (como Metadados) junto com a implementação da classe.
Consulte também
Conceitos
Interfaces no Common Type System