【发布时间】:2014-05-16 19:57:27
【问题描述】:
我在学校学习了一年的 Java 课程,但我对强制转换的理解非常有限。
我理解的转换类型是将 int 转换为 double。这是有道理的; 1 会变成 1.0
我不太了解的投射类型是:
将自定义对象(例如superRectangle)转换为另一个客户对象(例如,myRectangle)。 (这是假设myRectangle 是superRectangle 的子类)
与superRectangle 实例关联的所有私有或公共字段会发生什么情况?程序怎么知道这是一个合法的举动?对于所有这些问题,我可以将一个 int 转换为一个字符串,这到底是什么意思?
【问题讨论】:
-
什么时候需要演员表?在函数的参数中,您可以尝试 Java 泛型
-
要记住对象真正是是一回事,而且永远不会改变。例如洗车需要
Car并清洗它(它将你的Honda投射到Car并清洗它)但它只是“从那个角度看它”,它实际上仍然是一个Honda.如果它试图将那辆车转换为Ford,你会得到一个运行时异常,因为它实际上是一个Honda -
在你的程序中,偶然铸造和它的表亲
instanceof应该很少见。通常有更好的方法来做到这一点
标签: java object casting subclass