假设你有一个像这样的干净类:
public class A {
// Stuff
}
还有这样的界面:
public interface G {
// Stuff
}
为什么我可以这样做:
A a = new A();
((G) a) // No errors thrown
我不明白为什么当它们彼此无关时应该可以从类 A 转换到接口 G 。有人可以向我解释一下吗?
跟进。如果我进行以下操作:
public class C implements G {
// Stuff
}
这不会编译:
((C) a)
实现接口的类和仅实现接口的类有什么区别?
编辑:我得到一个编译器错误说:
不能从 A 转换到 C