>super(arg0);调用基类的构造器。这上调用基类的构造器的语句必须出现在该类的构造器的第一行,如果第一行没有,编译器自动产生调用基类的默认构造器的代码。如果该类没有构造器,编译器自动为该类生成一个默认构造器,而这个自动生成的构造器仍然要调用基类的默认构造器。如果基类没有默认构造器(即:没有参数的构造器),那么派生类就必须定义自己的构造器,这个自己的构造器可以是默认的构造器(通常不是),这个自己的构造器必须在第一行调用基类的构造器并传递适当的参数。如果还不明白,好好看书。:)

解决方案 »

  1.   

    想象成子类中有一个父类的对象。它叫做super如果父类没有默认的构造函数,子类就要“强制性的要建立这个构造函数”。其实任何时候都要初始化父类,只是当父类有默认构造函数并且你没有显示调用其它构造函数的时候,他就会调用默认的,这样你就感觉不到“强制”了,但也是调用了。
      

  2.   

    请教楼上两位,是否凡是一个子类继承一个父类,其实这个被继承的父类,都必须有一个构造函数?平时我们继承一个父类时,之所以不用写super(arg0),是因为系统帮我们自动生成了?
      

  3.   

    不写super,相当于使用默认构造函数.(无参)
      

  4.   

    >请教楼上两位,是否凡是一个子类继承一个父类,其实这个被继承的父类,都必须有一个构造函数?不必。一个类如果没有定义任何构造函数,编译器为其自动生成一个默认构造函数。如果定义了任何构造函数,编译器就不再做些工作。>平时我们继承一个父类时,之所以不用写super(arg0),是因为系统帮我们自动生成了?不与 super 时,将隐含 super();,即调用基类的默认构造器,并且不传递任何参数。如果要传递参数,必须在子类中明确定义构造器,调用 super,并传递参数。
      

  5.   

    建议好好看看 java 关于继承方面的资料
    不打好基础,很难受的!!