Classi

Chi ha dimestichezza con la programmazione orientata a oggetti sa che una classe consente di definire le operazioni che possono essere eseguite da un oggetto, inclusi metodi, eventi e proprietà, nonché un valore contenente lo stato dell'oggetto, detto campo. Sebbene in una classe siano normalmente inclusi sia definizione che implementazione, una classe può contenere uno o più membri privi di implementazione.

Un'istanza di una classe è un oggetto. Si accede alle funzionalità di un oggetto chiamando i suoi metodi e accedendo alle sue proprietà, ai suoi eventi e campi.

Nella tabella che segue è presentata una descrizione di alcune caratteristiche consentite alle classi in runtime. Nell'elenco non sono comprese eventuali caratteristiche aggiuntive disponibili tramite le classi Attribute. Tali caratteristiche potrebbero non essere tutte disponibili nel linguaggio utilizzato.

Caratteristica Descrizione
sealed Specifica che da questo tipo non è possibile derivarne altri.
implements Indica che la classe utilizza una o più interfacce fornendo implementazioni dei membri di interfaccia.
abstract Specifica che non è possibile creare un'istanza di questa classe. Per utilizzarla è necessario derivare da essa un'altra classe.
inherits Indica che le istanze della classe possono essere utilizzate ovunque la classe sia specificata. In una classe derivata che eredita da una classe base è possibile utilizzare l'implementazione di qualsiasi metodo virtual fornito dalla classe base, oppure è possibile eseguire l'override dei metodi della classe base tramite l'implementazione della classe derivata.
exported o not exported Indica se una classe è visibile all'esterno dell'assembly in cui è definita. Si applica solo alle classi di primo livello.

Anche le classi nidificate possiedono le caratteristiche dei membri. Per ulteriori informazioni, vedere Membri del tipo.

I membri di classe privi di implementazione sono membri astratti. Una classe con uno o più membri abstract è essa stessa abstract e non è possibile crearne nuove istanze. In alcuni linguaggi destinati al runtime è consentito contrassegnare una classe come astratta anche se nessuno dei suoi membri lo è. È possibile utilizzare una classe astratta quando è necessario incapsulare un set di base di funzionalità ereditabili dalle classi derivate oppure sottoponibili a override quando necessario. Alle classi che non sono astratte viene fatto riferimento come a classi concrete.

Una classe consente di implementare qualsiasi numero di interfacce, ma può ereditare solo da una classe base. Tutte le classi devono avere almeno un costruttore, per l'inizializzazione di nuove istanze della classe.

Ciascun linguaggio che supporta il runtime fornisce un modo per indicare che una classe o membro di classe presenta caratteristiche specifiche. L'utilizzo di una particolare sintassi per ciascun linguaggio garantisce che le caratteristiche della classe e dei relativi membri vengano memorizzate come metadati insieme all'implementazione della classe.

Vedere anche

Common Type System | Interfacce | System.Object | Metadati