0

我已经阅读了有关多态性和继承的章节,并完成了我的 Java 书籍中的所有练习。但我仍然不明白为什么我需要在实践中使用向下转换。你能否举一些你不得不使用向下转换的工作或项目的例子?

4

1 回答 1

1

假设您有一个基类,以及一个直接或间接从该基类派生的类。然后,只要将该基类类型的对象类型转换为派生类类型,就称为向下转换。您需要向下转换以使实例特定。例如,假设getobject()是一个返回 a 的方法Object,因为String它是 的子类Object,所以该方法也可能返回 a String

情况(一):

Object o = getObject();

在这里,您已将方法返回的对象分配给Object引用变量。因此,您只能调用Object实例上类中定义的方法o

情况(ii):

Object o = getObject();
if(o instanceof String)
  String s = (String)o;

在这里,如果getobject()实际上已经返回了一个String实例,那么您将它向下转换为String. 这样做的好处是您可以调用StringsCase(i) 中无法完成的方法。

于 2013-04-21T14:21:44.000 回答