如果我有两个彼此无关的对象。在以下情况下会发生什么: 我们有:对象A,对象B
A a = new A();
B b = new B();
- a = b; \会编译吗?我会得到例外吗?
- a =(A)b; \会编译吗?之后 - 我会得到例外吗?
醇>
答案 0 :(得分:3)
您可以简单地编译它们以获得答案。
否无法编译
否无法编译
另见
答案 1 :(得分:2)
两者都不会编译,在第二种情况下只有编译器可以检查类型,所以如果你先通过Object,你就可以在运行时强制转换并获得异常
答案 2 :(得分:0)
如果两个对象无关,则无法将一个对象强制转换为另一个。 1.不会编译。 2.将编译,但会在运行时抛出异常。
如果一个对象是从另一个继承的,那么你就可以把它转换为另一个。