ポリモーフィズム:Person ming = new Person();を理解する方法。

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");
    }
}

おすすめ

転載: blog.csdn.net/Mr_zhang66/article/details/112430772