域
声明
域表示与对象或类相关联的变量,声明格式如下:
attributes field_modifiers type variable-declarators;
域的修饰符field_modifiers可以是:
- new
- public
- protected
- internal
- private
- static
- readonly
静态域和非静态域
下面的例子清晰的反映了二者之间的区别
域的初始化
如果在类中,没有显式的对域进行初始化,系统将赋予其一个默认值。域的默认初始化分为两种情况:对应静态域,类在装载时对其进行初始化; 对于非静态域,在类的实例创建时进行初始化。在默认的初始化之前,域的值是不可预测的。
索引指示器
索引指示器(indexer)使得可以像数组那样对对象使用下标。它为我们提供了通过索引方式方便地访问类的数据信息的方法。
声明
attributes indexer-modifiers indexer-declarator
索引指示器可以使用的修饰符
new
public
protected
internal
private
virtual
sealed
voerride
abstract
覆盖
在类是成员声明中,可以声明与继承而来的成员同名的成员,这时我们称派生类的成员覆盖(hide)了基类的成员。这种情况下,编译器不会报告错误,但会给出一个警告。对派生类的成员使用new关键字,可以关闭这个警告。
虚方法
当类中的方法声明前加上了virtual修饰符,我们称之为虚方法,反之为非虚,使用了virtual修饰符后,不允许再有static,abstract,或override修饰符。
抽象与密封
抽象类
抽象类A提供了一个抽象方法F。类B从抽象类A中继承,并且又提供了一个方法G,因为B中并没有包含对F的实现,所以B也必须是抽象类。类C从类B中继承,类中重载了抽象方法F,并且提供了对F的具体实现,则类C允许是非抽象的