看了一下,应该这么改
class Super{ 
public int i=0; 
public Super(String text){ 
i=1; 


public class Sub extends Super{ 
public Sub(String text){ 
//增加
super(text)
i=2; 

public static void main(String args[]){ 
Sub sub=new Sub("Hello"); 
System.out.println(sub.i); 

}

解决方案 »

  1.   

    请问楼上为何要增加super(text)呢?
      

  2.   

    因为系统会自动在子类构造函数的第一句隐示加super();
    除非子类构造函数这有this()或super()。
    public Sub(String text){ 
    //系统自动增加super();
    i=2; 

    然而,你在父类中显示定义了带参数的构造函数,默认的构造函数自动取消,
    所以这里系统找不到super(),编译出错。
    你可以自己在子类构造函数的第一句添加super(text),
    这样系统就不会再加super()了。