接口中的Java转换

接口中的Java转换,第1张

接口中的Java转换

o1
o3
一起使用时
(I2)
,您告诉编译器该对象的类实际上是其声明类型的子类,并且该子类实现
I2

Integer
班是 最后的 ,所以
o3
不可能是一个子类的实例
Integer
:编译器知道你在说谎。
C1
但是不是最终的,所以
o1

可以
C1
该Implements 的子类型的实例
I2

如果您使用

C1
final,编译器也会抱怨:

interface I1 { }interface I2 { }final class C1 implements I1 { }class C2 implements I2 { }public class Test{     public static void main(){        C1 o1 = new C1();        C2 o2 = new C2();        Integer o3 = new Integer(4);        I2 y = (I2)o3; //compiler complains here !!        I2 x = (I2)o1; //compiler complains too     }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5478978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存