如果我拥有class A {并class B extends A {愿意
B[] b = new B[1];
b[0] = new B();
System.out.println(b instanceof A[]);
Run Code Online (Sandbox Code Playgroud)
打印出真或假?
Mar*_*ers 15
所述JLS指出,如果B是分配给A,然后是,B []被分配给一个[].
这打开了严重影响的大门,但是这个代码证明了这一点:
class A {}
class B extends A {}
class C extends A {}
//...
B[] bs = new B[2];
A[] as = bs;
as[0] = new C(); //runtime error
B b = bs[0];
Run Code Online (Sandbox Code Playgroud)
此代码编译但在运行时失败.我们称缺乏类型安全性.
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |