继承心灵的boggler

时间:2014-06-17 21:54:14

标签: java inheritance

假设有一个类Foo,而Bar是它的子类(Bar extends foo),并声明了以下内容:

 Foo foo = new Bar(1)
 Bar bar = (Bar) foo

声明的foo类型是Foo,它的实际类型是Bar 声明的条形类型是Bar,但它的实际类型是什么?

1 个答案:

答案 0 :(得分:2)

bar的实际类型是...... Bar

如果无法转换为Bar,JVM将抛出异常。请注意,foobar仅存储对象的引用。传递和转换引用不会修改指向对象。

它与C ++中的不同,当你可以在按值传递对象时强制转换对象。