作者freewhat (这就是人生吗)
看板java
标题Re: [问题] 多型请教
时间Wed Mar 24 17:57:16 2010
我刚刚实际run了一下程式,再详细看了书,
原来书的答案没错~ 他是写说 compile error 的是 只有3
1是run time时期才有问题,compile time 是可以过的。
是我搞错了~ QQ
那这样我又有一个问题,
1是run time时期会有ClassCastException,这我是了解的,
那为什麽3的错误是在编译时期呢?
(3的错误: inconvertible types)
是因为强制转型的检查是在编译时期处理的吗?
脑袋快打结了XD
真的头昏昏,把 3 打成 2 XD
※ 引述《freewhat (这就是人生吗)》之铭言:
: class Building { }
: public class Barn extends Building
: {
: public static void main(String[] args)
: {
: Building build1 = new Building();
: Barn barn1 = new Barn();
: Barn barn2 = (Barn) build1; //1
: Object obj1 = (Object) build1; //2
: String str1 = (String) build1; //3
: Building build2 = (Building) barn1; //4
: }
: }
: 上面的程式,我知道 2 , 4 是对的,3是错的。
: 书上写1也是对的,可是这样 父类别实体转成子类别 有符合多型的精神吗?
: 总觉得1怪怪的,能开导我一下吗XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.43.220.48
※ 编辑: freewhat 来自: 115.43.220.48 (03/24 18:34)