instanceof关键字
还有0人有此问题
发表在Java视频课程答疑 2018-02-14
是否精华
版块置顶:

public class Computer {

     public static void main(String args[]) {
     
      Pad ipad=new Pad();
     
      Shouji xiaomi=new Shouji();
     
    System.out.println("平板电脑是否继承自电脑类:"+(ipad instanceof Computer)); 
   
    System.out.println("小米手机是否继承自平板电脑类:"+(xiaomi instanceof Pad)); 
   
    System.out.println("小米手机是否继承自电脑类:"+(xiaomi instanceof Computer));
   
    System.out.println("平板电脑是否继承自手机类:"+(ipad instanceof Shouji));
   
    System.out.println("平板电脑是否继承自医生类:"+(ipad instanceof Doctor));
      
     }
}

       class Pad extends Computer{
       
       
       }
       class Shouji extends Pad{
       
       
       }

在这个类中,当某个对象和某个类继承关系错误但只要他们还存在继承关系,编译不会报错,输出为false,但当某个对象和某个类完全没任何关系时,编译就会直接报错,我想问的是,当Java编译程序时运行到System.out.println("平板电脑是否继承自手机类:"+(ipad instanceof Shouji));这个语句时,还没有编译到class Pad extends Computer{
       
       
       }
       class Shouji extends Pad{
       
       
       }这两行语句,Java怎么知道他们存在继承关系,当Java编译运行到System.out.println("平板电脑是否继承自医生类:"+(ipad instanceof Doctor));这个语句时它又怎么确定 医生类还对象完全没有关系?麻烦老师了,谢谢 

分享到:
精彩评论 3
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2018-02-21
沙发

Java和C语言不一样,C语言所有代码都是按顺序编译的,JAVA中类和方法的编译没有先后顺序。

♞☞¥&$☜_1515244730
学分:235 LV4
2018-02-24
板凳
那意思是不是编译器报的错都是将这个程序完全编译结束了才报的错?
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2018-02-24
地板

♞☞¥&$☜_1515244730 发表于2018-02-24 01:01

那意思是不是编译器报的错都是将这个程序完全编译结束了才报的错?

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照