【发布时间】:2020-08-12 21:52:01
【问题描述】:
我很困惑,当我从指向子类对象的超类引用变量中使用 getClass() 时,结果就是子类。 下面是一个简单的例子:
public `class` TestGetClass
{
public static void main(String[] args)
{
Object obj = new Integer(20);
System.out.println("obj class: " + obj.getClass());
}
}
输出给我的是 Integer 类而不是 Object 类。
obj class: class java.lang.Integer
谁能解释一下
【问题讨论】:
-
这种行为称为dynamic dispatch。
-
感谢@Turing85,运行时对象似乎是从引用变量中调用的对象
标签: java polymorphism