为什么这个程序的输出是:
person
person
我知道继承意味着子类采用了超类的属性,这里是代码:
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());
}
}
我知道getinfo()
方法不会被继承而不会被覆盖,因为它是private
。但是,Student
类中有另一种方法具有相同的名称并返回Student
。
我想知道为什么会这样? JVM如何正确地使用继承?