当然,编译器足够聪明,可以准确地推断出您在某些情况下需要什么功能,但为什么其他情况需要运行时支持? 最佳答案 因为我们并不总是知道,我们将在运行时面对什么实例。例如,您有类:SuperClass、Subclass1和Subclass2,它们都有一个方法doACoolThing()。用户按下按钮0、1或2,并根据他的输入创建相应类的实例,并且它的doACoolThing()方法被调用。我们(以及编译器)无法确定在运行时将调用哪个类的方法。这就是为什么这些技巧需要运行时支持。一个小例子来说明一个想法(P.S.不要这样写代码,这里只是为了