gpt4 book ai didi

java - instanceof 运算符的使用

转载 作者:行者123 更新时间:2023-12-01 09:44:34 25 4
gpt4 key购买 nike

这段代码表示这里会进行向下转型,并且不会抛出异常。但是对象(a)已经属于Dog3类,那为什么还要再次向下转型呢?当我创建动物类的这个对象(a),然后尝试向下转换时,抛出了异常。但是在java tpoint中,它说这可以使用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 类型,当然不会改变。但指向它的引用可以是 Dog3任何 super Dog3,如果您想使用 Dog3 引用,您应该更改它,例如使用 Dog3 类中的一些特定方法的示例

关于java - instanceof 运算符的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38175052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com