Person ming = new Person();
注意区分Person ming是定义Person类型的变量ming,而new Person()是创建Person实例(对象)。
而对于如下情况:
Object o = new person;
Object o = new Student();
Object类型的变量o,可以指向person类型的对象,也可以指向student类型的对象。
Object是父类,person、Student为子类。
(一个引用类型变量可能指向(引用)多种不同类型的对象)
public class Main {
public static void main(String[] args) {
Person p = new Student();
p.run(); // 应该打印Person.run还是Student.run?
}
}
class Person {
public void run() {
System.out.println("Person.run");
}
}
class Student extends Person {
@Override
public void run() {
System.out.println("Student.run");
}
}