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
    }
}

 

posted @ 2020-07-01 15:11  viewts  阅读(1405)  评论(0编辑  收藏  举报