用默认构建器(空白变量)创建两个类:A和B,令它们自己声明自己。从A继承一个名没C的新类,并在C内创建一个成员B。不要为C创建一个构建器.创建类C的一个对象,并观察结果。

解决方案 »

  1.   

    class A{
    public A(){
    A a=new A();
    }
    }
    class B{
    public B(){
    B b=new B();
    }
    }
    class C extends A{
    B b;
    }
    public class Test
    {
        public static void main(String []args)
        {
         C c=new C();
        
        }
    }
    会在public A(){
    A a=new A();
    }
    这个地方产生无限循环,大概就是要你看这个
      

  2.   

    A a=new A();
    这就话的意思是实例化A这个类,他首先会查找类的构造函数,你却在构造函数中加上了实例化他的程序,这就相当于一个递归调用,一个没有出口的递归调用.