Java编译时类型和运行时类型的区别
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 } }