当有多个子类时,如何确定调用的是哪个子类的方法

一个父类,有多个子类去继承,并重写了某个方法 testA();

现在父类的 functionB() 中调用了 testA(); 已经确定了没有调用 到父类的 testA() 方法。

如何确定调用到了哪个子类的 testA() 中呢? 我无法找到new对象时是new的哪个对象,因为代码量太大,调用逻辑太复杂了。所以想问下有没有其他的方法去确定调用哪个子类的方法。

打印类型来看呀
虽然你把子类对象赋值给了父类类型,但是依然能够获取到它自身到底是什么类型的

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        A a=new B();
    }
}

class A{
    public A()
    {
        System.out.print(this.getClass());
    }
}

class B extends A{
    public B(){

    }
}

直接 getClass().getName() 获取类名

试着每个testA方法里面加上一条不一样的打印语句,然后运行一下,看一下打印结果就知道找的是哪个方法了