很奇怪的问题,为什么在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,死循环
------解决方案--------------------一楼说的对,循环构造函数了。
------解决方案--------------------这不是死循环了吗?
------解决方案--------------------