class A{
//A a = new A(); //不能
}public class C extends A{
public static void main(String[] args){
C c = new C();
}
}class A{
        public A(String S){
         //public A(){
                System.out.println("A's constructor");
        }
}
public class C extends A{
        public C(String S){
                super(S); //不给父类一个String参数怎么能成?
                System.out.println("C's constructor");
        }
        public static void main(String[] args){
                C c = new C("");
        }
}

解决方案 »

  1.   

    先说第二个例子.子类的构造函数必然会调用父类的构造函数,如果你不掉用,那么系统就会默认给你调用super()即父类的一个不带参数的构造函数,所以,这里,你的父类没有这个东西,自然就错了.
    至于第一个问题,为什么会在运行时堆栈溢出......
    你把他编译,然后用反编译工具,反编译你的程序,看看吧,看了就知道什么回事了......