0
class A { 

}
public class B extends A {

public static void main(String[] args) {
     A m = new A();
     B n = (B)m;
}
}

このコードは遵守できません。ただし、以下のコードでは、このダウンキャストが機能します。

 class A { 

}
public class B extends A implements Cloneable{

@Override
public B clone() throws CloneNotSupportedException {
return (B)super.clone();
}
public static void main(String[] args) {
     B m = new B();
     B n = m.clone();
}
}

では、なぜこのダウンキャストが機能するのでしょうか。

=============訂正============================

私のせいで申し訳ありませB n = **(B)**m;B n = m;。私は非常に申し訳ない。上記のコードで修正しました。

4

2 に答える 2

1

初めての場合でも -; クラスA {

       }
    public class B extends A {

    public static void main(String[] args) {
     A m = new A();
   //  B n = m;
     B n = (B)m;
   }  
     }

仕事です。

于 2013-08-07T06:11:00.150 に答える
0

何?AをBにキャストすることはできません.AがBを拡張する場合、BはAとBのインスタンスとして脅かされる可能性がありますが、AをBのインスタンスにすることはできません。

于 2013-08-07T06:14:24.277 に答える