Java之super關鍵字的用法
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.