Java中instanceof关键字的理解「建议收藏」

Java中instanceof关键字的理解「建议收藏」Java中instanceof关键字的理解

大家好,又见面了,我是你们的朋友全栈君。

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

用法: 
result = object instanceof class 
参数: 
Result:布尔类型。 
Object:必选项。任意对象表达式。 
Class:必选项。任意已定义的对象类。 
说明: 
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。

但是instanceof在Java的编译状态和运行状态是有区别的:

在编译状态中,class可以是object对象的父类,自身类,子类。在这三种情况下Java编译时不会报错。

在运行转态中,class可以是object对象的父类,自身类,不能是子类。在前两种情况下result的结果为true,最后一种为false。但是class为子类时编译不会报错。运行结果为false。

例子:

接口Person

public interface Person {

public void eat();
}

实现类People

public class People implements Person {

private int a=0;
 @Override
 public void eat() {

  System.out.println(“======”+a);
  
 }

}

子类xiaoming:

public class xiaoming extends People {

private String name;

@Override
public void eat() {

 System.out.println(“+++++++++”);
}
}

主函数

public static void main(String[] args) {

  People p=new People();
  xiaoming x=new xiaoming();
  System.out.println(p instanceof Person);
  System.out.println(p instanceof xiaoming); —–2
  System.out.println(x instanceof Person);
  System.out.println(x instanceof People);
 }

注意:上面2处的代码在编译时不会报错。

运行结果:

true
false
true
true

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106053.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java毕业设计题目大全

    java毕业设计题目大全本文是节选部分JAVA相关毕业题目以下是设计题目:班级风采网站的设计工资绩效管理系统的开发电子产品销售网站的设计与实现酒店预订信息管理系统的设计成绩管理系统B2C的电子商务系统(J2EE)B2C购物网站设计教学网站及网上考试系统的设计与实现ERP采购系统IC卡管理系统JAVA语…

    2022年7月21日
    17
  • 手机兼容性测试_浏览器兼容性测试工具

    手机兼容性测试_浏览器兼容性测试工具AndroidApp兼容性测试,是一个比较重要的App评价内容说到测试阶段,兼容性测试主要是对App在各类机型上的兼容、适配等情况进行测试。搞清楚这一阶段的测试重点后,因此,AndroidApp在进行兼容性测试前,一定要做好其前序测试内容,否则兼容性测试效果将会较差。1.机型配置问题Android兼容测试一定要做到宽范围覆盖,如果做不到这个,那么就违背了兼容性测试的目标——测试App在各类机型、系统上的运行是否兼容、适配。因此,兼容性测试必须要在各个机型、系统上对App进行运行、测.

    2025年7月23日
    3
  • laravel 表迁移报错[通俗易懂]

    laravel 表迁移报错[通俗易懂]laravel 表迁移报错

    2022年4月24日
    53
  • 用户画像总结

    用户画像总结        最近在工作之余,结合自己的理解和论坛上的一些帖子,整理了份用户画像的文章,个人觉得这篇文章在宏观上很好地描述了用户画像的主要内容。(文章内的图片来源于不同帖子,权当分享,侵删)一、什么是用户画像        用户画像是指根据用户的属性、用户偏好、生活习惯、用户行为等信息而抽象出来的标签化用户模型。通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。通过打…

    2022年7月18日
    22
  • java多线程—Java 多线程同步的五种方法

    Java 多线程同步的五种方法

    2022年2月24日
    50
  • 关闭135445端口命令_电脑135和445端口怎么关闭

    关闭135445端口命令_电脑135和445端口怎么关闭%1mshtavbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,”/c%~s0::”,””,”runas”,1)(window.close)&&exit@echooff color1f title关闭135445端口echo. echo. echo. echo正在关闭1

    2022年10月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号