当子类定义了和父类属性名称完全相同的属性的时候就称为属性的覆盖
class Person{
public String info="1";
}
class Student extends Person{
public int info=100;//因为此时按照就近取用原则,肯定找到覆盖的属性名称
public void printInfo() {
System.out.println(info);
}
}
public class TestDemo {
public static void main(String args[]) {
Student stu=new Student();
stu.printInfo();
}
}//100
这种操作本身是没有任何意义的,其核心的原因在于:所有类中的属性都要求用private封装,那么一旦封装了,子类一定不知道父类有哪些属性,所以覆盖属性也就没有意义所在了
结论:在定义属性的时候没事干别整重名。