技术小菜鸟 发表于 2013-08-11 18:18

最近在学Java中的super,写了个程序老报错,求大神指点!

我想用super分别调用下父类的构造函数和方法成员,
在调用构造函数时,
我想先在父类中给i初始化,再在子类中用super调用它,结果老出这个错误,郁闷啊!
class A
{
   public int i;
   public A(int i)
{
        this.i = i;
   }
   public void f()
{
        System.out.printf("AAAA\n");
}
}

class B extends A
{
   public B(int i)
{
   super(i);
}

public void f()
{
   System.out.printf("BBBB\n");
   super.f();
}

public void show()
{
   f();
}
}

public class test_3
{
public static void main (String[] args)
{
   A aa = new A(20);
   B bb = new B();
   bb.show();
}
}

错误是:
F:\java>javac test_3.java
test_3.java:33: 找不到符号
符号: 构造函数 B()
位置: 类 B
      B bb = new B();
               ^
1 错误

rover12421 发表于 2013-08-12 00:53

B只有带参数的构造方法,而你实例化的使用的是无参数的构造方法
页: [1]
查看完整版本: 最近在学Java中的super,写了个程序老报错,求大神指点!