1、类的覆载(override)
要覆载一个方法,必须先在所属类的基类中,使用virtual关键字把该方法声明为虚方法。声明一个虚方法,表示该方法可以(而非必需)被派生类所覆载。
派生类可以在方法声明中使用override关键字来实现基类虚方法。派生类中的覆载方法必须声明为和基类方法拥有同样的作用域、返回值、名称和参数列表。
2、抽象类(abstract)
抽象类中的抽象方法不给出具体的普遍实现的行为,而是由派生类中的覆载方法具体实现。
只要一个类包含一个或多个抽象方法,该类就必须为抽象类。
抽象类不能被实例化。
public abstractclass ClassA
{
//具体细节
public abstract void UpdateData(string userId, string userName);
}
public calss ClassB : ClassA
{
public override void UpdateData(string userId, string userName)
{
//具体细节
}
}
如果基类为抽象类,则派生类也默认为抽象类,除非对所有抽象方法进行非抽象实现才可对派生类进行实例化。
3、静态属性与方法(static)
public calss ClassA
{
private static int num;
public static int Num
{
get {return num};
set {num = value};
}
}
静态属性及方法调用时不能以实例化类来调用,而需要以基类(ClassA)调用。
每个实例化的类操作了基类的静态属性值后,该属性值发生变化反映到所有地方。
静态方法访问所属类的属性时,该属性必须也为静态的。
静态方法不能被派生类覆载,所以静态方法不能为虚方法。也不能被声明为抽象方法。