public class Father
{
public virtual T Shout<T>() where T : new()
{
return new T();
}
}
public class Son : Father
{
//子类重写父类方法的是方法体实现代码,而不是方法签名!!!!
//泛型方法的约束会自动从父类继承下来,注意:类型参数的名字
//即使和父类不一样,也会继承约束
//因为重写的父类的shout方法,在父类中已经为T设置
//了构造函数约束,所以子类不需要再约束了。
public override K Shout<K>()
{
return new K();
}
}
{
public virtual T Shout<T>() where T : new()
{
return new T();
}
}
public class Son : Father
{
//子类重写父类方法的是方法体实现代码,而不是方法签名!!!!
//泛型方法的约束会自动从父类继承下来,注意:类型参数的名字
//即使和父类不一样,也会继承约束
//因为重写的父类的shout方法,在父类中已经为T设置
//了构造函数约束,所以子类不需要再约束了。
public override K Shout<K>()
{
return new K();
}
}