Java编译时类型和运行时类型的区别

Posted viewts

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
    }
}

 

以上是关于Java编译时类型和运行时类型的区别的主要内容,如果未能解决你的问题,请参考以下文章

CODEBLOCKS10.05 编译运行时 DOS窗口的中文显示为乱码?怎么解决?

scala manifest和classmanifest的区别

java 运行错误

编译型语言解释型语言静态类型语言动态类型语言概念与区别

转载编译型语言解释型语言静态类型语言动态类型语言概念与区别

静态语言和动态语言的区别(转)