instanceof的问题 哪个大佬知道呀 求帮忙

Lin_bai_ 2020-10-09 09:57:52
class Birds
{
public void work()
{
System.out.println("总统主要工作");
}
}
class Chickens extends Birds
{
public void work()
{
System.out.println("Chickens主要工作");
}
}
class Main
{
public static void main(String[] args)
{
Birds s = new Chickens();
s.work();
Birds z = new Birds();
z.work();
Birds q = new Birds();
if (q instanceof Chickens) //是不是不报错就是正常的?
{
Chickens p = (Chickens) q;
}

}
}
...全文
5633 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengchuiqi_ 2020-10-10
  • 打赏
  • 举报
回复
引用 4 楼 Lin_bai_ 的回复:
好的谢谢 我现在去试试 可以看下我别的帖子吗 大佬 帮我看看
如果你直接复制我都代码编译报错的话,把Hello删了就行,但是你的if里边执行的话 Chickens p = (Chickens) q; 有问题,这个是因为q是父类对象,p是子类对象,Java里不能把父类对象强转为子类对象
Lin_bai_ 2020-10-10
  • 打赏
  • 举报
回复
引用 3 楼 fengchuiqi_ 的回复:
[quote=引用 2 楼 Lin_bai_ 的回复:]运行了之后 没有啥提示 就是直接运行成功了 可以增加一些提示吗??在哪里加
        if (q instanceof Hello.Chickens) { //编译正常判断条件为false,没有进执行if
            Hello.Chickens p = (Hello.Chickens) q;
        }else{//在else里加错误提示输出到控制台,或者打印日志
            System.out.println("false");
        }
运行结果[/quote] 好的谢谢 我现在去试试 可以看下我别的帖子吗 大佬 帮我看看
fengchuiqi_ 2020-10-10
  • 打赏
  • 举报
回复
引用 2 楼 Lin_bai_ 的回复:
运行了之后 没有啥提示 就是直接运行成功了 可以增加一些提示吗??在哪里加
        if (q instanceof Hello.Chickens) { //编译正常判断条件为false,没有进执行if
            Hello.Chickens p = (Hello.Chickens) q;
        }else{//在else里加错误提示输出到控制台,或者打印日志
            System.out.println("false");
        }
运行结果
KeepSayingNo 2020-10-10
  • 打赏
  • 举报
回复
你这个if判断里面肯定返回false 所以不会走到强转里面
Lin_bai_ 2020-10-09
  • 打赏
  • 举报
回复
运行了之后 没有啥提示 就是直接运行成功了 可以增加一些提示吗??在哪里加
超人先生1016 2020-10-09
  • 打赏
  • 举报
回复
q instanceof Chickens 这个返回的false

50,541

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧