class Example
{
  String str;
  public Example()
{
  str= "example";
}
  public Example(String s)
{
  str=s;
}

class Demo extends Example
{}
class Test
{
  public void f () 
{
  Example ex = new Example("Good");
  Demo d = new Demo("Good");//就是这里说找不到符号。

public static void main(String args[])
{
   new Test().f();
}
}错误提示:找不到符号。谁知道为什么呀?

解决方案 »

  1.   

    你继承Example写的类里头没有定义构造函数,默认只有 Demo() 这个构造函数。
    class Demo extends Example {
        public Demo() {
            super();
        }    public Demo(String s) {
            super(s);
        }
    }
      

  2.   

    楼上说得没错,构造函数是不能像普通函数那样继承的,需要自己手动调用super()。
      

  3.   

    那我把它改成这样,为什么也有错:class Demo extends Example
    {
      public Demo()
      {
       super(String s);//需要 ')'
      }
    }
    class Test
    {
      public void f () 
     {
      Example ex = new Example("Good");
      Demo d = new Demo();
     }
      

  4.   

    public Demo()
      {
       super(String s);//需要 ')'
      }
    参数s要定义在子类的构造函数中
    public Demo(String s)
      {
       super(s);//需要 ')'
      }
      

  5.   

    子类只继承了父类默认的构造函数,其他构造函数子类是继承不到的
    也就是子类只继承了
     public Example()
    {
      str= "example";
    }
     当使用Demo d = new Demo("Good")时,子类就找不到相应的构造函数了,