Java instanceof关键字

【java】java instanceof 关键字是如何实现的? 1.概述 转载:instanceof关键字是如何实现的? 小二那天去面试,碰到了这个问题:“instanceof 关键字是如何实现的?”面试官希望他能从底层来分析一下,结果小二没答上来,就来问我。 我唯唯诺诺,强装镇定,只好把 R 大的一篇回答甩给了他,并且叮嘱他:“认认真真看,玩完后要是还不明白,再来问我。。。” 作者:RednaxelaFX,链接:https://www.zhihu.com/question/21574535/answer/18998914 2.场景一:月薪 3000 元一下的码农职位 阅读详情

可以用 instanceof 判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。instanceof 的语法格式为:
对象 instanceof 类(或接口)
它的返回值是布尔型的,或真(true)、或假(false)

instanceof使用的好处

上一篇文章中介绍了多态,在进行对象类型转换之前先使用instanceof进行判断可以避免因程序错误导致的崩溃情况。

package dd20161114_2;

public class Pet {
    int age;
    String name;
    char sex;

    protected int hight;
    public  void eat() {
        System.out.println("吃饭");
    }


}


package dd20161114_2;

public class Dog extends Pet {


    public  void eat() {
        // TODO Auto-generated method stub
        System.out.println("狗啃骨头");
        this.hight=5;
    }

}


package dd20161114_2;

public class Cat extends Pet{

    public  void eat() {
        // TODO Auto-generated method stub
        System.out.println("猫吃鱼");
    }


}


package dd20161114_2;

public class Master {

    public static void main(String[] args) {
        //通过实例化子类对象,来得到父类对象,向上转型,损失精度。
        Pet pet = new Dog();
        pet=new Cat();
        pet.hight=5;

        if (pet instanceof Dog) {
            //通过父类对象得到子类对象,向下转型,需要强转。
            Dog dog = (Dog) pet;
            dog.eat();


        } else if(pet instanceof Cat){
            Cat cat=(Cat) pet;
            cat.eat();
        }
    }
}

输出结果:
猫吃鱼

如果不加这个判断就会出错。

同样可以判断一个对象是否实现了接口,在上面的程序中添加一个接口。

package dd20161114_2;

public interface Play {

    public void play();

}
package dd20161114_2;

public class Cat extends Pet implements Play{

    public  void eat() {
        // TODO Auto-generated method stub
        System.out.println("猫吃鱼");
    }

    public void play() {
        // TODO Auto-generated method stub
        System.out.println("猫捉老鼠");
    }


}
package dd20161114_2;

public class Dog extends Pet implements Play{


    public  void eat() {
        // TODO Auto-generated method stub
        System.out.println("狗啃骨头");
        this.hight=5;
    }

    public void play() {
        // TODO Auto-generated method stub
        System.out.println("狗啃骨头");
    }

}
package dd20161114_2;

public class Master {

    public static void main(String[] args) {
        //通过实例化子类对象,来得到父类对象,向上转型,损失精度。
        Pet pet = new Dog();
        pet=new Cat();
        pet.hight=5;
        if(pet instanceof Dog){
            if (pet instanceof Play) {
                //通过父类对象得到子类对象,向下转型,需要强转。
                Dog dog = (Dog) pet;
                dog.play();
                //通过子类向上转型得到接口对象
                Play play=dog;


            }
        }else if(pet instanceof Play){
            Cat cat=(Cat) pet;
            cat.play();
            //通过子类向上转型得到接口对象
            Play play=cat;
        }
    }
}

输出结果
猫捉老鼠
无论是继承父类还是实现接口都可以向上或向下转型,提现多态的好处。所以当只需要某些类或者接口的方法时,多多使用多态

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留! 不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹 阅读详情

相关推荐

EverOS:为AI智能体构建长期记忆系统的完整指南

长期记忆是AI智能体实现持续学习和自我演进的核心能力,它通过结构化存储和关联检索历史交互信息,使智能体能够跨越单次对话的局限。其技术原理通常涉及向量数据库、记忆提取算法和知识图谱等组件,用于对非结构化对话内容进行编码、组织和索引。这一能力的技术价值在于显著提升了智能体的个性化服务水平、任务完成连贯性以及从经验中学习的能力,是实现真正“智能”伙伴的关键。在应用场景上,长期记忆系统广泛应用于个性化聊天伴侣、持续学习的编程助手、游戏NPC角色塑造以及客户服务机器人等领域。本文以EverOS为例,深入解析了其提供的

weixin_28679635的博客 449

Java中的instanceof关键字在Android中的用法

在下面介绍Android中如何使用instanceof关键字开发更方便时,先来温习一下java中instanceof的概念。 ----------------------------------------------------------------------------------------------------------------------------------------

_happyzhang的专栏 8742

MATLAB三元相图实战:从数据准备到高级可视化技巧全解析

本文深入解析了如何使用MATLAB绘制专业的三元相图(ternary plot)。文章从数据归一化、范围映射等预处理技巧入手,详细介绍了散点图、等高线图、凸包计算等高级可视化方法,并提供了多数据集对比与出版级图表美化的实战指南,帮助科研与工程人员高效呈现复杂的三元数据关系。

spark7igniter的博客 258

java中instanceof用法

java中instanceof用法

正在Android的学习路上 450

手把手教你为智能手表DIY一个离线导航:LVGL + SD卡地图实战

本文详细介绍了如何为智能手表DIY一个离线导航系统,结合LVGL图形库和SD卡地图数据。从硬件选型、地图数据处理到LVGL地图引擎实现,提供了完整的实战指南,特别适合户外运动爱好者和嵌入式开发者。文章还分享了功耗优化、性能提升等实用技巧,帮助读者打造高效的离线导航解决方案。

weixin_42570484的博客 206

同花顺自动化交易避坑指南:pywinauto实战中验证码识别与界面弹窗处理

本文深入探讨同花顺自动化交易中的关键稳定性问题,重点解决验证码识别与弹窗处理两大难题。通过优化Tesseract OCR、整合打码平台API以及设计pywinauto弹窗监控体系,提供了一套完整的自动化交易解决方案,帮助交易者有效规避资金账户和持仓信息操作中的常见陷阱。

weixin_33734785的博客 486

Android instanceof的使用

两个页面共用一个适配器 getView的时候 要判断 是哪个页面 在设置适配器 以此来控件页面部分控件的显示;adapter = new ActivityEnterMainAdapter(datas,ActivityEnterMainActivity.this); activity_enter_main_xl.setAdapter(adapter);ActivityEnter

Hu_wenpeng的博客 2358

Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战

这篇文章分享了UE5 VR项目的性能优化经验。作者通过对比UE4和UE5的VR模板性能,发现UE5默认帧率只有45FPS,远低于UE4的100FPS。主要性能瓶颈来自Lumen全局光照、虚拟阴影贴图等新特性。文章详细列出了12项关键优化设置,包括禁用Lumen、关闭虚拟阴影、使用前向渲染等,并分析了各项调整对性能的影响程度。特别指出删除默认的VolumetricCloud可立即提升5帧。最后建议根据场景需求平衡画质与性能,对于高帧率要求的VR项目,可能需要谨慎使用UE5或关闭其部分高级渲染功能。

TxNet 1383

Android instanceof运算符

instanceof是Java、php的一个二元操作符(运算符),和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。FR:徐海涛(Hunk Xu) QQ技术群:386476712

海涛高软 904

YOLO11改进策略【独家融合改进】| EfficientViMBlock + LGAG + DySample

通过学习采样来学习上采样DySample。

Limiiiing的博客 363

杰理 JL701N/JL703N USB MIDI 使用教程

摘要:本教程介绍如何在杰理JL701N/JL703N音箱的可视化SDK中配置USB MIDI功能。主要步骤包括:1)启用PC模式;2)修改SDK宏定义启用USB MIDI;3)实现MIDI数据接收处理逻辑;4)调用接口发送MIDI数据;5)使用MIDI-OX测试功能。针对低版本SDK可能出现的设备识别问题,提供了在midi.c文件中添加特定代码行的解决方案。使用前需确保SDK版本达标,并注意备份原始文件。

qq_42014563的博客 1267

instanceof java 接口_Java中instanceof关键字

1. Java中instanceof关键字Java中instanceof关键字是用来判断某个对象是否是某个类的实例。语法形式: 引用名 instanceof 类名(接口名); 返回一个boolean值。instanceof关键字的作用是判断一个对象是否是一个具体类的实例,我们在重写equals方法中要先判断是否是同一对象,之后再判断一个对象是否是另一个的实例,如果是判断各个属性值以判断是否是同一对...

weixin_39577422的博客 611

YOLOv11模型压缩技术全面对比:剪枝、量化、蒸馏的原理与实战

YOLOv11模型压缩技术综述 模型压缩技术是解决计算资源受限环境下部署深度学习模型的关键。本文系统介绍了YOLOv11模型压缩的三种核心技术:剪枝、量化和蒸馏。剪枝技术通过移除冗余参数实现模型轻量化,包括结构化剪枝(通道/卷积核剪枝)和非结构化剪枝;量化技术通过降低数值精度(如FP32→INT8)减少存储和计算量;蒸馏技术则利用教师模型指导学生模型训练,在保持精度的同时减小模型规模。三种技术可单独或组合使用,在工业质检、智慧安防等边缘计算场景中发挥重要作用,使YOLOv11在保持80%精度的同时减少70%

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 579

深入Java关键字instanceof

深入Java关键字instanceof instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。 举个例子:public interface IObject { } public class Foo implements IObject{ } public class Test extends Foo{ } public clas

张勤一 1269

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

instanceof java 接口_java关键字系列之instanceof关键字

instanceof关键字虽然没有final、static这些关键字用的多,但是也是非常重要的,尤其是面试。因此花了一些时间整理了一下。一、认识instanceof关键字其实instanceof就是一个操作符,语法形式很简单:A通常是引用变量,B通常是一个类或者是接口,表示的含义有三个:(1)A是否是B的实例,(2)A是否是B子类的实例(3)A是否是B接口实现类的实例也就是说我们平时使用insta...

weixin_35215045的博客 237

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java中Instanceof关键字的使用与作用

Instanceof 关键字的作用: a instanceof A:关键字的作用就是判断 类A的实例化对象能不能赋给对象a,返回一个boolean类型的数据。 举例: class A{ public void eat() { System.out.println("父类A吃饭"); } } class B extends A{ public void eat() { System.out.println("子类B吃饭"); } } class C extends A{ public vo

weixin_46351306的博客 1559

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java中instanceof关键字的作用

instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。 严格来说,instanceof 是 Java 的一个二元操作符(双目运算符),类似于 ==,>,< 等操作符。用来测试一个对象是否是为一个类的实例,用法为: boolean result = obj instanceof class 其中 obj 为一个对象,Class 表示一个类或者一个接口。 当 obj 为 Class 的对象,或者是其直接或间接.

应无所住而生其心 9232

【Java关键字】理解instanceof关键字

前言 前文对static关键字进行了介绍,读者可以知道static关键字是一个可以控制成员变量、成员方法以及代码块的加载顺序和作用范围。我们在平时看源码的时候会时不时看到instanceof关键字,Java开发者对它的第一印象就是:instanceof是用于测试一个对象是否是另一个类的实例。 本文主要对instanceof关键字进行介绍: 了解instanceof instanceof作用的类型...

NYfor2020的博客 2030

Java之instanceof关键字

为了更好的说明,我下面通过代码举例说明。(Person有两个子类Man和Woman) 1、为什么java要使用instanceof关键字? 答:java在向下转型的过程中,运行过程中可能出现ClassCastException(类型转换异常),而instanceof就是来避免这个异常的。 2、使用情境:为了避免在向下转型时出现ClassCastException的异常我们在向下转型之前,先进行instanceof的判断。 一旦是返回true就进行向下转型,如果返回false就不进行向下转型。 3、如果a i

weixin_46626833的博客 252

java instanceof关键字详解

将从操作数堆栈中弹出objectref,它必须是引用类型。无符号indexbyte1和indexbyte2用于将索引构造到当前类的运行时常量池中(§2.6),其中索引的值为(indexbyte1

持续学习,持续更新 1872

Java中instanceof关键字的理解

一、instanceof 关键字是干嘛的? instanceof是Java、php的一个二元操作符(运算符),和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。 Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 通俗点理解...

qq_27721753的博客 375

Java之instanceof关键字详解

instanceof关键字在 Java 中是一个有用的工具,特别是在处理多态、类型检查和类型转换时。它可以帮助确保代码的类型安全,避免在运行时发生类型转换异常。在使用instanceof时,注意避免冗余检查,并正确处理null值。

m0_62729850的博客 2571

java关键字之instanceof

java instanceof关键字底层实现

红尘之一骑的专栏 3万+

Java instanceof 关键字

instanceof 是一个运算符,用于判断一个对象是否是一个类的实例或者是一个类的子类的实例。其中,object 是一个对象,class 是一个类名或者一个接口名。如果 object 是 class 的实例或者是 class 的子类的实例,则返回 true;否则返回 false。// 输出 true System . out . println(animal1 instanceof Dog);

hj1993的博客 843

instanceof java 报错_Java instanceof关键字详解

严格来说 instanceof 是 Java 中的一个双目运算符,由于它是由字母组成的,所以也是 Java 的保留关键字。在 Java 中可以使用 instanceof 关键字判断一个对象是否为一个类(或接口、抽象类、父类)的实例,语法格式如下所示。boolean result = obj instanceof Class其中,obj 是一个对象,Class 表示一个类或接口。obj 是 clas...

weixin_26729841的博客 389

java中的instanceof关键字

instanceof是Java的一个二元操作符,和==,>,作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。 用法: 某个实例对象      instanceof      某个类名 instanceof 通常用于根据不同的实例调用不同的方法: 一、在有继承关系的类中我们可以通过多态来调用不同实例中的不同方法: 例1:   有三个类,类名以及它们之间的关系

jal198958的专栏 3822
上一篇: Java 多态的好处
下一篇: Java匿名内部类
彼天
博客等级 码龄11年 37粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值