通用类型系统中的类
更新:2007 年 11 月
如果您熟悉面向对象的编程,就知道类可以定义对象可执行的操作(方法、事件或属性),并定义保存对象(字段)状态的值。尽管类通常同时包含定义和实现,但它也可以包含没有实现的一个或多个成员。
类的实例是对象。可以通过调用对象的方法并访问其属性、事件和字段,来访问对象的功能。
下表说明了运行库允许类拥有的某些特征。(通过 Attribute 类提供的附加特征未包括在本列表中。) 您的语言可能无法提供所有这些特征。
特征 |
说明 |
---|---|
sealed |
指定不能从这种类型派生出另一种类型。 |
implements |
指出该类通过提供接口成员的实现,使用一个或多个接口。 |
abstract |
指定不能创建类的实例。若要使用它,必须由其派生出另一个类。 |
inherits |
指出可以在指定了基类的任何地方使用类的实例。从基类继承的派生类可以使用基类提供的任何虚方法的实现,或者派生类可以用自己的实现重写它们。 |
exported 或 not exported |
指出某个类在定义它的程序集之外是否可见。仅适用于顶级类。 |
嵌套类也有成员特征。有关更多信息,请参见类型成员。
没有实现的类成员是抽象成员。有一个或更多抽象成员的类其本身也是抽象的;不可以创建它的新实例。以运行库为目标的某些语言允许将类标记为抽象,即使其成员都不是抽象的也是如此。当需要封装一组派生类可在适当时候继承或重写的基本功能时,可以使用抽象类。非抽象的类称为具体类。
类可以实现任何数量的接口,但它只能从一个基类继承。所有的类都必须至少有一个构造函数,该函数初始化此类的新实例。
每种支持运行库的语言都提供了一种方法,指出类或类成员具有特定的特征。在使用您的语言所要求的语法时,该语言将确保类及其成员的特征与类的实现一起存储起来(作为元数据)。