Re: [问题] 不太懂怎么把母class转型成子class

楼主: LPH66 (-6.2598534e+18f)   2014-11-23 15:24:27
你要问的应该是所谓的 downcast
Java 语法上使用一般的 cast 即可 (就是前面摆一对括号里面放型态)
不过当来源跟目标都是 reference 型态且这两种型态间没有上下继承关系的话
javac 会 compile error 告诉你无论如何这都转不过去
如果是 upcast (转成父类别) 那什么事都没有
(事实上 upcast 可以隐式进行, 这也是你已经在程式里做过的)
downcast 时编译会过, 但如果实际上转不过去的话会扔 ClassCastException 出来
所以你其实只需要用普通的 cast 语法即可
如果要写的小心一点就外面包个 try/catch 接 ClassCastException 处理错误状况
要不然就是用 instanceof 先检查那确实是你要的类别再转
作者: wtchen (没有存在感的人)   2014-11-23 19:31:00
感谢说明,已经解决了,我想我不应该用继承,把母class内建到另一个class才是正确作法。
楼主: LPH66 (-6.2598534e+18f)   2014-11-25 00:55:00
那这就是“继承vs合成”的老问题了 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com