这个程序编译没有任何问题。
interface X{}
class A{
public void mA(){
System.out.println("mA of A");
}
}
class Demo{
public static void main(String args[]){
X ob=null;
A a1=null;
ob=(X) a1; //Legal
a1=(A)ob; //Legal
}
}
Run Code Online (Sandbox Code Playgroud)
但是下面的代码有问题?
interface X{}
final class A{
public void mA(){
System.out.println("mA of A");
}
}
class Demo{
public static void main(String args[]){
X ob=null;
A a1=null;
ob=(X) a1; //Illegal
a1=(A)ob; //Illegal
}
}
Run Code Online (Sandbox Code Playgroud)
Error:
error: incompatible types: A cannot be converted to X
ob=(X) a1; //Illegal
^
1 error
Compilation …Run Code Online (Sandbox Code Playgroud)