c#泛型继承的里氏原则问题

来源:互联网 发布:java 继承泛型类 编辑:程序博客网 时间:2024/05/16 08:39
 class Dog
    {
         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();


原创粉丝点击