java中怎样做可以把父类强制转换成子类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎样做可以把父类强制转换成子类相关的知识,希望对你有一定的参考价值。
不能,子类有父类的方法和熟悉,但是子类也有自己的方法和熟性,当你转成子类的时候使用子类的方法和属性时会出异常,所以是不能转的除非你本身是子类的对象,被转成父类的类型了,可以通过强制转换转成子类对象 参考技术A ChildClass childObject = (ChildClass)parentObject;
java父类强制转换成子类的问题
如下代码 把Obj子类强制转换成Object超类会产生异常,而不会继续执行son = (Obj)father;下面的语句
public class Obj
public int i = 100;
public static void main(String[] args)
try
Obj son = null;
Object father = new Object();
son = (Obj)father;
System.out.println(son.i);
catch(Exception e)
但是为什么j2me里
ServerSocketConnection ssc = (ServerSocketConnection)Connector.open("socket://:9999");
Connector.open("socket://:9999");返回的是一个Connection类型的 却可以强制转换成其子接口ServerSocketConnection类型的呢?
你所看到的方法返回的是接口,实际上是方法返回了实现了该接口的类的对象。
拿你的Connector.open()方法来说,这个方法返回的类的对象可能既实现了Connection接口,也实现了ServerSocketConnection接口。但是Connector.open()方法在定义的时候被定义为返回Connection接口,但实际返回的类的对象同时也实现了ServerSocketConnection接口,所以Connector.open()虽然返回的是Connection接口,但却能被强转为ServerSocketConnection。
回答得很辛苦,请楼主给分。 参考技术A 多态问题。
Object father = new Obj();
son = (Obj)father;
父类的引用可以指向子类。你的写法是无法强转的。 参考技术B 父类不能转成子类。 参考技术C Connection类比较特别 参考技术D 这个问题不错,顶。
以上是关于java中怎样做可以把父类强制转换成子类的主要内容,如果未能解决你的问题,请参考以下文章