我有以下代码片段:
class BaseClass {
public Integer getX() {
return 5;
}
}
class InheritedClass extends BaseClass implements Interface {
}
interface Interface {
public Number getX();
}
public class Test5 {
public static void main(String[] args) throws Exception {
System.out.println(InheritedClass.class.getMethod("getX").getReturnType());
}
}
这段代码返回java.lang.Number
,这对我来说很奇怪,因为 BaseClass 的getX
方法返回java.lang.Integer
。最有趣的是,如果BaseClass
实现了Interface,返回的类型是java.lang.Integer...这是正常的行为吗?