class A {
    String name;
    A(String x) {
        name=x;
    }
}class B extends A{
    String s;
    B(){
        System.out.println(s);
    }
}
为什么出错,正确的应该怎么写

解决方案 »

  1.   

    class A {
        String name;
        A(){
    }
        A(String x) {
            name=x;
        }
    }or
    class B extends A{
        String s;
        B(){
    super("");
            System.out.println(s);
        }
    }可以不报错
    不知道你要达成什么样的目的..........
      

  2.   

    把A类的默认构造函数写出来试试.
    PS:继承的A类也没有用到
      

  3.   

    我想你一定是把两个class 写到一个文件里了.
      

  4.   

    子类的构造需要调用父类的构造方法,在子类的构造中如果没有指明调用父类的那一个构造方法的时候,会默认调用父类中的无参数的构造方法。在楼主的代码中子类B没有指明调用父类A的带一个String参数的构造方法,那么子类B会调用父类A的无参数构造方法,但是父类A又没有无参数的构造方法,因此出错。
    john_sheep(彩虹勇士)给出了正确的解决方法,怎么使用要看楼主的目地了。
      

  5.   

    freewilling(笨笨) ( ) 信誉:100    Blog  2006-12-11 16:53:33  得分: 0  
     
     
       
    子类的构造需要调用父类的构造方法,在子类的构造中如果没有指明调用父类的那一个构造方法的时候,会默认调用父类中的无参数的构造方法。在楼主的代码中子类B没有指明调用父类A的带一个String参数的构造方法,那么子类B会调用父类A的无参数构造方法,但是父类A又没有无参数的构造方法,因此出错。
    john_sheep(彩虹勇士)给出了正确的解决方法,怎么使用要看楼主的目地了。  
     
    极端同意