当您使用类型A的引用时,您只会看到为类A定义的方法。由于
doSomethingB中不会覆盖
doSomethingB(因为它具有不同的签名),因此不会调用它。
如果要使用类型B的引用,则两种方法都将可用,并且
doSomething将选择B 类的方法,因为它具有更具体的参数(字符串与对象)。

当您使用类型A的引用时,您只会看到为类A定义的方法。由于
doSomethingB中不会覆盖
doSomethingB(因为它具有不同的签名),因此不会调用它。
如果要使用类型B的引用,则两种方法都将可用,并且
doSomething将选择B 类的方法,因为它具有更具体的参数(字符串与对象)。