另一种提出同一问题的方法是,给定2个A类和B类,它是同义词:“对象A可以被投入B”和“对象A是B的后代”吗?
谢谢,
JDelage
编辑澄清问题,使A和B都是类更清楚。
答案 0 :(得分:2)
答案 1 :(得分:2)
“ Java - 你能把一个对象转换成一个它没有扩展的类吗?” - 不,你不能。
“基本上,它是同义词:”对象A可以转换为B“和”对象A是B的直接后代“吗?” - 是的。此外,当A是实现接口B的类时。
答案 2 :(得分:2)
如果不是直接后代或者没有实现接口
class A;
class B extends A;
A a = new B();
interface A;
class B implements A;
(A) B
在其他情况下
它会抛出ClassCastException http://download.oracle.com/javase/1.4.2/docs/api/java/lang/ClassCastException.html
答案 3 :(得分:1)
是的,你可以,如果B是接口而A是B的实现
答案 4 :(得分:0)
假设你有:
interface I {}
class A implements I {}
class B extends A {}
class C extends B {}
以下所有内容均有效:
(I)C;
(A)C;
(B)C;