先来看一个例子,假设我们现在有A类
public class A{
private String name;
public A(String name){
this.name = name;
}
public String getName_1() {
return name;
}
public void setName_1(String name) {
this.name = name;
}
}
B类继承A类
public class B extends A{
private String name;
public String getName_2() {
return name;
}
public void setName_2(String name) {
this.name = name;
}
public static void main(String[] args) {
B b = new B();
b.setName_1("HRX1");
System.out.println(b.getName_1());
b.setName_2("HRX2");
System.out.println(b.getName_2());
}
}
执行结果如下
下面我们应该就能明白,子类(B)实例化的时候会有两块name信息,一块继承自父类(A),一个是其自身所拥有的,只不过在方法同名(getName)时优先选择其自身的属性,下图详细说明: