1.方法覆盖overriding methods
①只有声明为virtual的方法才能被子类覆盖
public virtual void G() {...} //虚方法
②覆盖方法必须被声明为override
class B:A{
public override void G(){...} //覆盖
}
注意:
覆盖方法必须和原方法有相同的参数和可见性
static方法不能被覆盖
2.泛型Generic Types
泛型类就类似于一个模板,可以在需要时为这个模板传入任何我们需要的类型。
要使用泛型,必须定义泛型类,然后将使用泛型的方法定义为泛型类的方法成员。
访问修饰符 class 类名<T>
{
泛型类成员定义
}
创建泛型类对象必须明确指定一种数据类型替换掉T,不能使用占位符。
泛型类名<int> 对象名 =new 泛型类名<int>();//定义int类型的泛型对象
void Foo<T>(){
T x=null; //error
T y=0; //error
T z=default(T); //ok! 0,'\0',false,null
}