Person ming = new Person();
Person mingの違いは、Personタイプの変数mingを定義することであり、new Person()はPersonインスタンス(オブジェクト)を作成することであることに注意してください。
そして、次の状況の場合:
Object o = new person;
Object o = new Student();
オブジェクトタイプの変数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");
}
}