为什么方法“printperson()”不调用子类的私有方法?

时间:2016-04-01 03:24:41

标签: java inheritance methods private public

public class Test {
  public static void main(String[] args) {
     new Person().printPerson();
     new Student().printPerson();
  }
}

class Student extends Person {
  private String getInfo() {
     return "Student";
  }
}

class Person {
  private String getInfo() {
    return "Person";
  }
  public void printPerson() {
    System.out.println(getInfo());
  }
}

答案是

  


  人

但是当我将私有访问说明符更改为public时,结果是

  


  学生

为什么呢?我无法理解。

1 个答案:

答案 0 :(得分:0)

私有方法在子类中不可见,因此无法覆盖。所以它总是从父类调用一个方法。