为什么方法 "printperson()" 不调用子类的私有方法?
Why doesn't the method "printperson()" invoke the subclass's private method?
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());
}
}
答案是
Person
Person
但是当我将两个私有访问说明符都更改为 public 时,结果是
Person
Student
为什么?看不懂。
私有方法在子classes 中不可见,因此不能被覆盖。所以它总是从父 class.
调用一个方法
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());
}
}
答案是
Person
Person
但是当我将两个私有访问说明符都更改为 public 时,结果是
Person
Student
为什么?看不懂。
私有方法在子classes 中不可见,因此不能被覆盖。所以它总是从父 class.
调用一个方法