super是直接父類對象的引用。可以通過super來訪問父類中被子類覆蓋的方法或屬性。
package cn.sxt.oo2;
public class TestSuper01 {
public static void main(String[] args) {
new ChildClass().f();
}
}
class FatherClass {
public int value;
public void f(){
value = 100;
System.out.println ("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass {
public int value;
public void f() {
super.f(); //調用父類對象的普通方法
value = 200;
System.out.println("ChildClass.value="+value);
System.out.println(value);
System.out.println(super.value); //調用父類對象的成員變量
}
}
super是直接父類對象的引用。可以通過super來訪問父類中被子類覆蓋的方法或屬性。
使用super調用普通方法,語句沒有位置限制,可以在子類中隨便調用。
若是構造方法的第一行代碼沒有顯式的調用super(...)或者this(...);那麼Java默認都會調用super(),含義是調用父類的無參數構造方法。這裏的super()可以省略。