很奇怪的问题,为什么在java中可以,在C#中不可以了??
namespace TextOverWrited
{
   public  class Animal
    {
      
 public Animal a = new Animal();// 为什么这句报 //System.StackOverflowException”类型的未经处理的异常出现在 TextOverWrited.exe 中。这个错误//啊???
        public    virtual void  eatFool() {
            Console.WriteLine("在父类中吃》》》》");
            Console.ReadLine();
        }
        protected void say()
        {
            Console.WriteLine("在父类说话");
            Console.ReadLine();
        }
    }
}
    public class Cat : Animal 
    {
       
        public   override void eatFool()
        {
              Cat cat =new Cat ();
            Console.WriteLine("在子类中");
            cat.say();
            Console.ReadLine();
        }
        
    }
}
              
                  c#
              
------解决方案--------------------循环构造了。
我很惊诧,JAVA能不报错???你确定吗?
------解决方案--------------------public Animal a = new Animal(); 这句根本就不需要
------解决方案--------------------死循环了,new  Animal 会新建实例,而新建实例又会new  Animal,死循环
------解决方案--------------------一楼说的对,循环构造函数了。
------解决方案--------------------这不是死循环了吗?
------解决方案--------------------