程序如下:
class A
{
double d; public A(double a)
{
d = a;
}
}class B extends A
{
String s;
}可是编译提示错误:
--------------------Configuration: JDK version 1.5.0_02 <Default>--------------------
F:\temp\test\test.java:11: cannot find symbol
symbol  : constructor A()
location: class A
class B extends A
^
1 errorProcess completed.这是怎么回事啊?

解决方案 »

  1.   

    如果继承了没有默认构造函数的类,那么此类也应给出构造函数
    修改如下:
    1 类A中加入A() {}
    2 类B中加入B() {A(1.2);}
      

  2.   

    1,2 是或的关系
    ---
    其实如果没有给出B的构造构造函数,那么编译器会默认调用其父类A的默认构造函数
    在此处A没有构造函数,故报错。
    可以尝试下以下修改方式:
    class A
    {
    double d;public A(double a)
    {
    d = a;
    }
    }class B extends A
    {
    String s;
    B() {}
    }
      

  3.   

    test.java 的代码是什么?是否是文件名有问题?
      

  4.   

    class A
    {
    double d; public A(double a)
    {
    d = a;
    }
    }class B extends A
    {
    String s;
    public B(double a){
    super(a);
    }
    }
      

  5.   

    class A
    {
    double d;
    }class B extends A
    {
    String s;
    }你这样不就行了?!
      

  6.   

    每个构造函数都必须调用重载构造函数(this())或调用父类构造函数(super())作为第一条语句,而父类是有参构造函数,子类就不能自动调用了.