1.使用super调用父类的构造方法
当用子类的构造方法创建一个子类的对象时,子类的构造方法总是调用父类的某个构造方法,也就是说,如果子类的构造方法没有明显地指明父类的哪个构造方法,子类就调用父类的不带参数的构造方法。由于子类不继承父类的构造方法,因此,子类在其构造方法中需要使用super来调用父类的构造方法,而且super必须是子类构造方法中的头一条语句,即如果在子类的构造方法中,没有明显地写出super关键字类调用父类的某个构造方法,那么默认地有:
super();
2.如果类里定义了一个或多个构造方法,那么java不提供默认的构造方法(不带参数的构造方法),因此,当在父类中定义多个构造方法时,应当包括一个不带参数的构造方法,以防子类省略super时出现错误。
3.例子:
class Sum{
int n;
float f(){
float sum=0;
for(int i=1;i<=n;i++)
sum=sum+i;
return sum;
}
}
class Average extends Sum{
int n;
float f(){
float c ;
super.n=n;
c=super.f();
return c/n;
}
}
public class Application{
public static void main(String args[]){
Average aver=new Average();
aver.n=100;
float result=aver.f();
System.out.println("result="+result);
}
}
如果此处不删去 super.n=n; 那么将得到1到100的求和的平均数,
如果删除了 super.n=n; 那么将得到0,因为int n;默认n的值是0.