public class TestSuper {
public static void main(String[] args){
//new ChildClass().f();//调用这个类的构造方法,与下面两句一个作用
ChildClass f = new ChildClass();
f.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="+value);
System.out.println("super.value="+super.value);//调用父类对象的成员变量
}
}
结果为:
FatherClass.value=100
ChildClass.value=200
value=200
super.value=100
①super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性,用super.+属性名/方法名来引用
②注意,super. 和子类中所使用相同的属性名其内存所在地址不同,独立存值