Java有两种引用类型,分别是编译时类型和运行时类型。编译型类型在变量声明时决定,运行时类型取决于变量具体指向的类型,如果两种类型不一致,就会出现多态。
规则:对象调用编译时类型的属性和运行时类型的方法。
举例:
class Person {
public String name;
public Person() {
name = "Person";
}
public String getName() {
return name;
}
}
class Student extends Person {
public String name;
public Student() {
name = "Student";
}
public String getName() {
return name;
}
}
public class Hello {
public static void main(String[] args) {
Person person = new Student();
System.out.println(person.name); // Person
System.out.println(person.getName()); // Student
}
}