super常见用法
1,super关键字是直接父类兑现改的引用,可以通过super来访问父类中被自雷覆盖的方法或属性。
package com.test;
public class TestSuper {
public static void main(String[] args) {
new ChildClass().printValue();
}
}
class FatherClass{
public int value;
public void printValue(){
value=100;
System.out.println("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass{
public int value;
public void printValue(){
super.printValue();
value=200;
System.out.println("ChildClass.value="+value);
System.out.println(value);
System.out.println(super.value);
}
}
输出结果为:
FatherClass.value=100
ChildClass.value=200
200
100
由此可见,super可以调用父类的方法和属性。
2,子类构造函数会默认调用父类的构造函数,父类默认调用Object的构造
package com.test;
public class TestSuper1 {
public static void main(String[] args) {
new ChildClass1();
}
}
class FatherClass1{
public FatherClass1() {
System.out.println("FatherClass1构造函数被调用");
}
}
class ChildClass1 extends FatherClass1{
public ChildClass1() {
//默认调用super方法
super();
System.out.println("ChildClass1构造函数被调用");
}
}
延伸:
super关键字的指向方法会自动向上延伸,执行顺序为从上至下,如先调用父类构造函数,才会再调用子类构造函数。