有关转换的Java编译问题

时间:2011-04-25 08:59:49

标签: java object compiler-construction casting

如果我有两个彼此无关的对象。在以下情况下会发生什么: 我们有:对象A,对象B

A a = new A();
B b = new B();
  
      
  1. a = b; \会编译吗?我会得到例外吗?
  2.   
  3. a =(A)b; \会编译吗?之后 - 我会得到例外吗?
  4.   

3 个答案:

答案 0 :(得分:3)

您可以简单地编译它们以获得答案。

  1. 无法编译

  2. 无法编译

  3. 另见

答案 1 :(得分:2)

两者都不会编译,在第二种情况下只有编译器可以检查类型,所以如果你先通过Object,你就可以在运行时强制转换并获得异常

答案 2 :(得分:0)

如果两个对象无关,则无法将一个对象强制转换为另一个。 1.不会编译。 2.将编译,但会在运行时抛出异常。

如果一个对象是从另一个继承的,那么你就可以把它转换为另一个。