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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 夜深人静学算法_描写夜深人静的成语

    夜深人静学算法_描写夜深人静的成语基于字符串前缀匹配的高效字符串匹配算法—字典树

    2025年9月30日
    4
  • linux服务器如何开放端口_Linux永久开放端口命令

    linux服务器如何开放端口_Linux永久开放端口命令开放服务器8080端口可访问(tomcat常用)iptables-IINPUT-ptcp–dport8080-jACCEPT开放服务器3306端口可访问(mysql常用)iptables-IINPUT-ptcp–dport3306-jACCEPT开放服务器6379端口可访问(redis常用)iptables-IINP…

    2025年9月3日
    7
  • vim 颜色主题_color颜色代码

    vim 颜色主题_color颜色代码转自:http://jingyan.baidu.com/article/ab69b270a0a32d2ca7189f35.htmlUbbuntu下Vim设置颜色主题(colorscheme)|浏览:679|更新:2015-03-1702:291234567分步阅读一键约师傅百度师傅高质屏

    2025年6月12日
    3
  • 深入理解linux内存管理_linux内存是如何划分的

    深入理解linux内存管理_linux内存是如何划分的摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市

    2025年6月16日
    3
  • android bioset 进程,kthrotlds(WatchDogs变种)查杀方法「建议收藏」

    android bioset 进程,kthrotlds(WatchDogs变种)查杀方法「建议收藏」virus.win32.parite.H病毒的查杀方法virus.win32.parite.H病毒的查杀方法昨天电脑中了virus.win32.parite.H病毒,搞了2个多小时最终搞定了.以下记录下我的解决方法.第一步:下载Win32.Parit…Linux系统木马后门查杀方法详解木马和后门的查杀是系统管理员一项长期需…

    2022年7月25日
    16
  • 大物电磁感应定律知识总结_电动势等于电压吗

    大物电磁感应定律知识总结_电动势等于电压吗动生电动势:磁场保持不变,导体回路或导体在磁场中运动产生的电动势感生电动势:导体回路不动,磁场发生变化产生的电动势一、在磁场中运动的导线内的感应电动势磁通量变化率为:根据法拉第电磁感应定律,在运动导线MN段上产生的动生电动势即为:因此,动生电动势在量值上等于在单位时间内导线所切割的磁感应线数动生电动势的电子理论解释当导线以速度v向右运动时,导线内每个自由电子获得向右的定向速度v,由于在磁场中,自由电子收到洛伦兹力电子在这个力的作用下,从导…

    2025年7月26日
    4

发表回复

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

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