Java初学:instanceof

1.instanceof 语句

**公式:System.out.println(X instanceof Y);这类语句能否编译通过取决于X与Y是否存在父子关系,如果X与Y存在父子关系(或者如果X指向的子类型和Y有关系),那么可以编译,且结果为true,如果不存在父子关系,那么无法编译,且编译结果为false。

这里我们举例说明,这里有Person类,Student类,Teacher类和Applicant,其中Student和Teacher类继承了Person类,因此,我们可以知道这里的等级关系为:

1.Object > Person > Student
2.Object > Person > Teacher
3.Object > String

1.第一次我们先返回一个Object类,这里Student指向的就是Object类

结果为

Teacher是Person下的另一条线,与Student无关,因此为false。而String为Object下的另一条单独的线,与Student更没有关系了

2.如果我们将Object换为Person,等级降低的话,

 因为Person与String同级,都是Object下,所以无法编译与比较。

3.如果将Person换成Student的话, 

这里报错是因为student和teacher类之间没有联系,并且Student与Teacher是在Person类下平级的,因此无法比较。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值