代码
public
class
food
<
T t
>
{
public virtual string show(T t) // virtual 虚方法 让子类重写
{
return t.GetType().Tostring() + t.Tostring();
}
}
public class food1:food < string > // 如果子类继承一个泛型类 子类没有泛型值 则父类的泛型 只能写具体的泛型 如string 因为创造子类实例时无法给父类指定
{
}
public class food2 < T > :food < T > // 当前子类的泛型不能是具体的 是具体的 就没意义了
{
public override string show(T t)
{
return " 子类 " + t.GetType().Tostring() + t.Tostring(); // 子类重写父类的方法
}
}
public class food3 < T > :food < string > // 父类可以写具体的类型
{
public string showinfo(T t)
{
return " showinfo " + t.tostring();
}
}
{
public virtual string show(T t) // virtual 虚方法 让子类重写
{
return t.GetType().Tostring() + t.Tostring();
}
}
public class food1:food < string > // 如果子类继承一个泛型类 子类没有泛型值 则父类的泛型 只能写具体的泛型 如string 因为创造子类实例时无法给父类指定
{
}
public class food2 < T > :food < T > // 当前子类的泛型不能是具体的 是具体的 就没意义了
{
public override string show(T t)
{
return " 子类 " + t.GetType().Tostring() + t.Tostring(); // 子类重写父类的方法
}
}
public class food3 < T > :food < string > // 父类可以写具体的类型
{
public string showinfo(T t)
{
return " showinfo " + t.tostring();
}
}