成员变量覆盖
父类TestA
public class TestA {
public String name = "A";
public void out() {
System.out.println(name);
System.out.println(this.name);
}
}
子类 TestB
public class TestB extends TestA {
private String name;
@Test
public void test() {
this.name = "B";
System.out.println(name);
System.out.println(super.name);
this.out();
}
}
测试输出
B
A
A
A
总结
-
子类定义了与父类同名的成员变量,子类对象实际上拥有两个变量,在父类变量可见的情况下,可以通过
super
访问 -
子类调用父类方法时,尽管运行时的
this
对象是子类对象,但父类方法通过this
访问变量时,是访问父类的变量,并非子类的同名变量
PREVIOUSSpring Cloud Gateway使用
NEXT单元测试简介