0
package java;
public class Question {
interface A {}
class B0 implements A {}
static void f(B0 b) {}
public static void main(String[] args) {
A a = new B0();
B0 b = new B0();
Question.f(a); // compiler error
Question.f(b);
}
}
这是编译器的错误规则不同。 A)Question.java/java/src/java line 18 Java问题Java函数匹配从C++
在C++中,这可以工作,a的运行时类型是B0,所以Question.f是匹配的。
为什么Java会使这个错误?
这工作在C++中的几种口味的工作? – chris
这不会在C++中编译。 'a'不是'B0'。 'a'是'A'。 – Barry
即使使用C++编译,您认为Java是否相同? – deviantfan