1. 程式人生 > >Java之super關鍵字的用法

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.