2017-02-21 1 views
-3

以下のコードを実行すると、ClassCastExceptionが発生します。ClassCastExceptionを取得していますが、ソースタイプオブジェクトがスーパータイプで、キャスト演算子がサブタイプです

class Test extends Test3 { 
    public static void main(String[] args) { 
     Test3 t3 = new Test3(); 
     Test t = (Test) t3; 
     System.out.print("hello"); 
    } 
} 
+2

「Test3」は「Test」ではないため、「Test」は「Test3」です。 「哺乳動物」は「犬」ではないが、「犬」は「哺乳動物」である。 –

+0

それはまさにあなたがすることができないものです。オブジェクトをそれ以外のものにキャストすることはできません。 – SLaks

答えて

0

キャストは基本データ型と、このように行われている.Butあなたは[クラス]は例えば文字列をしようとした場合、あなたがint Stringvariable = Integer.parseInt(Stringvariable)のような方法が整数に文字列から変換することなく、またはString intvariable = String.valueof(intvariable)変換することを行うカント整数から文字列へ

parseInt(Stringvariable)はIntegerクラスのメソッドです。 valueof(intvariable)はStringクラスのメソッドです。メソッドを使用してキャスト関係を確立する場合は、

関連する問題