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