三つのクラス 直接Javaキャスト(obj1 = obj2;
class Flower{}
class Violet extends Flower{}
class Gardenia extends Flower{}
とメインクラスがありますが、問題はどのように実施例G1 = F1のためである。この
class Test{
public static void main(String[] args) {
Flower f1 = new Flower();
Flower f2 = new Gardenia();
Violet v = new Violet();
Gardenia g1 = new Gardenia();
Gardenia g2 = new Gardenia();
g1 =f1;
f1 = g1;
g1=v;
v=(Violet)f2;
g2=f1;
g1=f2;
}
}
です。異なって書くことができますか?オブジェクト参照を別のオブジェクトに直接割り当てると、混乱します。このコードでは、適切なキャストを行い、何もできない行をコメントします(ClassCastEcxeptionは必要ありません)。例えば、f1=g1;
の行では、Flower f1=g1;
と言うことができます。
あなたは 'G1 =(ガーデニア)F2を意味しますか;'?あなたが何を求めているのか不明です。 – EJP
私は 'f1 = g1; '、私たちはこのように' Flower f1 = new Gardenia(); 'のように書くことができますか?その後、f1はGardenia()への花型のポインティングのインスタンスになりますか? – lor