このコードは、ダウンキャスティングはここで例外なくスローされますが、オブジェクト(a)は既にクラスDog3のものでした。私がこのクラスのオブジェクト(a)を動物にしてダウンキャストしようとすると、例外がスローされました。しかし、Javaのtpointでは、これはinstanceof演算子で可能です。そうですか?例えばinstanceof演算子の使用
class Animal
{
}
class Dog3 extends Animal
{
static void method(Animal a)
{
if(a instanceof Dog3){
Dog3 d=(Dog3)a;//downcasting
System.out.println("ok downcasting performed");
}
}
public static void main (String [] args)
{
Animal a=new Dog3();
Dog3.method(a);
}
}
からいくつかの特定のメソッドを使用するには、例えば、
Dog3
の参照を使用したい場合は、その変更する必要があります'、異なるコードはダウンキャストを行わないようにする可能性があります。 – markspace