Java中instanceof关键字的理解

2023-11-02

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://www.cnblogs.com/zjxynq/p/5882756.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中instanceof关键字的理解 的相关文章

  • 在java Swing中创建带有递增和递减按钮的数字文本框

    如何在 java swing 中创建一个数字文本框 它有两个按钮 向上和向下 分别递增和递减文本框中的值 此文本框也必须可编辑仅数字值 像这样的东西 我尝试在文本框附近放置两个按钮 然后在单击按钮时手动执行操作 有没有其他方法可以更好地做到
  • 使用 JPA/ORM 生成数据库模式是一个坏主意吗?

    Salve Part of 另一个问题 答案 https stackoverflow com questions 7595578关于 SO 以及其他声称相同的声明 如果您通过 JPA 更新数据库架构 但通常不是一个好的做法 您是否真的不应该
  • 如何安装 C++ 的 VOCE?

    我正在尝试安装 VOCE api 它是为 C 和 Java 构建的语音识别 API 这是我第二次使用外部 C 库 也是第一次使用 Java C api 语音链接 http voce sourceforge net http voce sou
  • 是否可以使用检测重新定义核心 JDK 类?

    我想重新定义字节码StackOverflowError构造函数 因此当堆栈溢出发生时我有一个 钩子 我想要做的就是在构造函数的开头插入对我选择的静态方法的单个方法调用 是否有可能做到这一点 您应该能够使用两种方法之一来完成此操作 除非在过去
  • Java 的 System.arraycopy() 对于小数组有效吗?

    是Java的System arraycopy 对于小数组来说是高效的 或者它是本机方法这一事实是否使其可能比简单的循环和函数调用效率低得多 本机方法是否会因跨越某种 Java 系统桥梁而产生额外的性能开销 稍微扩展一下 Sid 所写的内容
  • 如何在不改变的情况下将字符串转换为字节?

    我需要一个解决方案将字符串转换为字节数组而不需要像这样进行更改 Input String s Test Output String s Test byte b Test 当我使用 s getBytes 那么回复是 B 428b76b8 但我
  • 如何在 Java 中根据 XSD 1.1 验证 XML?

    在 Java 中根据 XML Schema 1 1 验证 XML 文件的最佳方法是什么 我从中获取了代码tutorial http www ibm com developerworks xml library x javaxmlvalida
  • 寻找 WebElements,最佳实践

    在我们当前的自动化 使用 Selenium WebDriver Java 中 我们使用 FindBy very广泛地 例如 FindBy css a name bcrumb protected List
  • java“类文件包含错误的类”错误

    我正在尝试制作一个控制台应用程序来测试我的网络服务 我成功部署了一个网络服务http localhost 8080 WS myWS http localhost 8080 WS myWS我用 wsimport 制作了代理类 wsimport
  • 嵌套枚举是静态的吗?

    读书时这个问题 https stackoverflow com questions 25011061 why can enum implementations not access private fields in the enum cl
  • 在 IntelliJ 中创建可执行 JAR(Java 18、JavaFX 18 Maven 项目),“警告:不支持的 JavaFX 配置...”

    我有一个 Java 18 JavaFX 18 Maven 项目 除了 javaFX 库之外 它还有很多库需要包含在工件中 我想创建一个工件 一个 jar 其中包含所有依赖项 我开始按照这个视频来创建 jar https www youtub
  • Java 8 Stream - 为什么过滤器方法不执行? [复制]

    这个问题在这里已经有答案了 我正在学习使用java流进行过滤 但是过滤后的流没有打印任何内容 我认为过滤器方法没有被执行 我的过滤代码如下 Stream of d2 a2 b1 b3 c filter s gt s startsWith b
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 如何检测java控制台中而不是GUI中的箭头键? [复制]

    这个问题在这里已经有答案了 我正在编写一个应用程序 我需要检测其中的箭头键 C 有getch 函数 我们想要获取输入 然后添加对 ASCII 值的检查 我们如何检测输入箭头键 谢谢 我写了一个Java类原始控制台输入 http www so
  • Java 中的可迭代求和?

    有没有一个库可以做到这一点 public class Iterables private Iterables public static
  • 从 AJP 连接器请求中检索 Shibboleth 属性

    当我在 Apache 上运行 Shibboleth 身份验证时遇到了一个奇怪的问题 当 Tomcat7 在后端运行时 Apache 通过 mod proxy ajp 发送所有内容 Shibboleth 的参数也是如此 In the 文档 h
  • Admob - 没有广告可显示

    你好 我尝试制作一些在 Android 手机上显示广告的示例程序 并尝试在 v2 2 的模拟器上测试它 代码中的一切似乎都很好 但调试器中的 AdListener 表示 响应消息为零或空 onFailedToReceiveAd 没有广告可显
  • 如何使用 AEM 解析 org.apache.http.ssl?

    最终 我尝试在 Java 代码中使用 AWS S3 库来通过 AEM 启用服务器端 S3 上传 但在安装依赖项和 或由 AEM 识别时遇到了问题 每次我添加新的依赖项时 都会弹出五个问题 在我尝试构建的这个包中 这是我看到的错误 The i
  • Java applet 是否会违反同源策略

    我需要请求一些东西并从其他域获取信息 我知道由于同源政策 javascript 无法做到这一点 我的另一个选择是通过我的服务器发出代理请求 我不希望请求来自我的服务器的 IP 也不想为我的服务器创建额外的负载 并且希望客户端这样做 是否可以

随机推荐

  • JS中版本号的比较(AI)

    在 JavaScript 中 您可以使用字符串比较算法比较版本号 版本号通常采用 x y z 格式 其中 x y 和 z 均为数字 表示主版本号 次版本号和修订版本号 以下是比较版本号的一些示例代码 示例1 简单比较 AI 您可以使用比较运
  • 线性调频脉冲压缩

    线性调频脉冲压缩 LFM信号的数学表达式为 式中为f c载波频率 rect t T 为矩形信号 K B T是调频斜率 信号的顺势频率为f c Kt T 2 t T 2 典型线性调频信号如下图 在MATLAB中实验结果如下 在远场设置了一个目
  • 3. 自建DNS(bind9)

    3 自建DNS bind9 扩展关键词 web dns NamedManager 是一个基于Web的DNS管理系统 注意 下文操作是在172 10 10 11机器上处理的 关键配置注意对应 各主机ip 及其hostname的设置 一 bin
  • C++中class关键字

    在C 语言中class是定义类的关键字 C 中也可以使用struct定义类 两者区别是 用class定义的类 如果数据成员或成员函数没有说明则默认为private 私有 的 而用struct定义的 默认为public 公共 的 示例 inc
  • Vue-Vue列表渲染v-for

    v for 指令需要以 site in sites 形式的特殊语法 一 v for 循环数组 HTML代码 div ul li item li ul div JS代码 new Vue el app data list red green b
  • 数据结构中常见的树

    哈夫曼树 Huffman Tree 哈夫曼树 又被称为最优二叉树 属于带权值二叉树的一种 它的真实节点全部分布在叶子节点中 是各种可能的组合中 WPL 值最小的形式 组合形式可能不唯一 但 WPL 值一定为最小 介绍一下 WPL Weigh
  • c语言repeat语句的用法,关于Lua中的repeat...until循环语句的使用教程

    关于Lua中的repeat until循环语句的使用教程 这篇文章主要介绍了Lua中的repeat until循环语句使用教程 是Lua入门学习中的基础教程 需要的朋友可以参考下与for和while循环不同 在循环的顶部测试循环条件 Lua
  • 【JavaWeb】PowerDesigner的使用

    PowerDesigner 数据库设计的工具 01 PowerDesigner概述 02 数据模型 2 1 概念数据模型 2 1 1 PowerDesigner使用之概念数据模型 2 1 2 根据概念模型生成物理模型 2 2 物理数据模型
  • C# 参数中this 表示扩展扩展方法

    怎么使用 public static SlicedHull Slice this GameObject obj Vector3 position Vector3 direction Material crossSectionMaterial
  • IOTCS+Ekuiper搭建物联网边缘计算平台

    背景介绍 IOTCS 是专为物联网平台而设计的工业智能网关 自从 2020 年 10 月以来 我们从需求调研 设计 定型 研发 测试经过漫长的沉淀与孵化 最终顺利实现工业智能网关最初的设想 我们凭借创新设计理念 快捷的安装以及部署 易用的扩
  • pycharm+pyqt5:CreateProcess error=5,拒绝访问

    问题背景 使用pyqt5来做python的图形界面程序开发实验 提前安装并配置了相关环境 弄了一下午 终于弄好了 总体的安装教程就不多说了 说说我遇到的错误叭 问题分析 通过命令行下载好相关工具后 需要使用pycharm的external
  • ant利用正则表达式获取文件夹名

  • wait(),waitpid()函数

    首先我们来了解一下所谓的僵尸进程 僵尸进程就是两个进程 一个父进程 一个子进程 其子进程终止后 0 3G的用户内存被回收 而3 4G的部分内存被回收 但是3 4G内存中的PCB等待父进程回收 若PCB未被父进程回收 我们称这个进程为僵尸进程
  • css/wxss 用伪类实现竖线效果(图片+源码)before、after巧用

    源代码见本文末尾 本文的代码片段用HTML语言书写 适用于网页 微信原生小程序 框架uniapp等 小程序原生开发需要实现这样一个效果 用伪类啊 这个我熟 先讲讲思路 因为用before和after的效果是一样的 所以我们任选一个 选择be
  • 基于OVSDB协议在SDN控制器ONOS开发配置管理OVS API

    为了更好的分享体验 博客搬迁至极客驿站 欢迎查阅 基于OVSDB协议在SDN控制器ONOS开发配置管理OVS API 介绍 准备工作 开发步骤 问题排查 介绍 目前protocol 中ovsdb协议层面已经实现 但是基于ovsdb prot
  • uniapp 点击复制 并有弹窗提示

    click myCopy 要复制的值 uni setClipboardData data delivery id 要被复制的内容 success gt uni showToast title 复制成功
  • 砝码称重——不同算法解决

    1 问题 砝码称重问题 设有1g 2g 3g 5g 10g 20g的砝码各若干枚 其质量 lt 1000g 求出用他们能称出的质量的种类数 不包括质量为0的情况 2 枚举法 算法思路 1 枚举不同砝码的个数 计算总重量 并将总重量对应的标志
  • Java学习总结-IO流的概念理解

    一 Java io流 的概念 流存在的意义 1 数据的传输量很大 2 内存有限 3 带宽有限 而Stream可以1点1点地逐步传输所有数据 这就是Stream存在的根本意义 想想我们是怎样下载1个大文件的 下载软件 例如x雷 并不会占用你内
  • IOS推送总结

    此文主要以证书生成配置为主 实现简单推送 部分截图与内容来自于互联网 若对大家有所帮助 还请给个赞O O 如有误 请指出 一起探讨 一 推送原理 Provider是指某个iPhone软件的Push服务器 APNS 是Apple Push N
  • Java中instanceof关键字的理解

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