发布网友 发布时间:2022-04-23 13:32
共5个回答
热心网友 时间:2023-10-15 20:27
父是不能强转成子的,类和接口都一样,而且方法的返回实际上是返回的是类的对象,而不是返回接口。
你所看到的方法返回的是接口,实际上是方法返回了实现了该接口的类的对象。
拿你的Connector.open()方法来说,这个方法返回的类的对象可能既实现了Connection接口,也实现了ServerSocketConnection接口。但是Connector.open()方法在定义的时候被定义为返回Connection接口,但实际返回的类的对象同时也实现了ServerSocketConnection接口,所以Connector.open()虽然返回的是Connection接口,但却能被强转为ServerSocketConnection。
回答得很辛苦,请楼主给分。
热心网友 时间:2023-10-15 20:28
多态问题。
Object father = new Obj();
son = (Obj)father;
父类的引用可以指向子类。你的写法是无法强转的。
热心网友 时间:2023-10-15 20:28
父类不能转成子类。
热心网友 时间:2023-10-15 20:29
Connection类比较特别
热心网友 时间:2023-10-15 20:30
这个问题不错,顶。
热心网友 时间:2023-10-15 20:27
父是不能强转成子的,类和接口都一样,而且方法的返回实际上是返回的是类的对象,而不是返回接口。
你所看到的方法返回的是接口,实际上是方法返回了实现了该接口的类的对象。
拿你的Connector.open()方法来说,这个方法返回的类的对象可能既实现了Connection接口,也实现了ServerSocketConnection接口。但是Connector.open()方法在定义的时候被定义为返回Connection接口,但实际返回的类的对象同时也实现了ServerSocketConnection接口,所以Connector.open()虽然返回的是Connection接口,但却能被强转为ServerSocketConnection。
回答得很辛苦,请楼主给分。
热心网友 时间:2023-10-15 20:28
多态问题。
Object father = new Obj();
son = (Obj)father;
父类的引用可以指向子类。你的写法是无法强转的。
热心网友 时间:2023-10-15 20:28
父类不能转成子类。
热心网友 时间:2023-10-15 20:29
Connection类比较特别
热心网友 时间:2023-10-15 20:30
这个问题不错,顶。