class Dog
{
public virtual void SayHi()
{
Console.WriteLine("i am the dog");
}
public override void SayHi()
{
Console.WriteLine("i am the minidog");
}
{
public virtual void SayHi()
{
Console.WriteLine("i am the dog");
}
}
class MiniDog:Dog
{public override void SayHi()
{
Console.WriteLine("i am the minidog");
}
}
class something<T> where T : Dog, new()
{
T t = new T();
public something()
{
t.SayHi();
}
static void Main(string[] args)
{
List<MiniDog> list = new List<MiniDog>();
}
结果输出什么? ...当Dog类中的SayHi方法不是虚方法,输出是什么
答案分别是 i am the minidog 和i am the dog
总结: 符合里氏原则, where T : Dog, new(), T 是Dog类时 T t = new T(); 和 Dog t=new T();
本文通过一个C#实例展示了多态与泛型的实际应用,包括虚方法的覆盖与约束使用,以及如何根据不同类型的行为进行相应操作。

被折叠的 条评论
为什么被折叠?



