当前位置: 首页 > news >正文

什么网站做污水处理药剂的好免费公司网站怎么做

什么网站做污水处理药剂的好,免费公司网站怎么做,如何自建网站服务器,绿色在线网站目录 引言 基本语法 基本作用 1. 检查对象是否是指定类的实例 2. 检查对象是否是子类的实例 3. 检查对象是否实现某个接口 4.null 处理 错误分析: 5.综合对比示例 最后总结 注意事项 引言 instanceof 概念在多态中引出,因为在多态发生时&…

目录

引言

基本语法

基本作用

1. 检查对象是否是指定类的实例

2. 检查对象是否是子类的实例

3. 检查对象是否实现某个接口

4.null 处理

错误分析:

5.综合对比示例

最后总结

注意事项


引言


instanceof 概念在多态中引出,因为在多态发生时,子类只能调用父类中的方法(编译时类型的方法),而子类自己独有的方法(运行时类型的方法)无法调用,如果强制调用的话就需要向下转型,语法和基本类型的强制类型转换一样;但是向下转型具有一定的风险,很有可能无法成功转化,为了判断能否成功转化,就需要 instanceof 先进行一个判断,然后再进行转换操作。


在 Java 中,instanceof 是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例。以下是关于 instanceof 的详细介绍:

基本语法

object instanceof Class/Interface
//对象 instanceof 类型(类/接口)

object:要检查的对象引用。可以是一个变量,也可以是一个表达式,其结果是一个对象引用。

Class/Interface:要检查的类或接口的名称。

基本作用

instanceof 运算符返回一个布尔值:

●如果 object 是指定 Class/Interface 的实例,或者是其子类的实例,返回 true。

●如果 object 不是指定 Class/Interface 的实例,返回 false。

●如果 object 为 null,则返回 false。

1. 检查对象是否是指定类的实例

场景:直接判断对象是否为某个具体类的实例。

// 示例类
class Car {}public class Main {public static void main(String[] args) {Car car = new Car();System.out.println(car instanceof Car); // true}
}

运行结果car 是 Car 类的实例,返回 true


2. 检查对象是否是子类的实例

场景:子类对象会被识别为父类的实例(继承关系)。

// 父类
class Animal {}
// 子类
class Dog extends Animal {}public class Main {public static void main(String[] args) {Dog dog = new Dog();System.out.println(dog instanceof Animal); // true}
}

运行结果Dog 是 Animal 的子类,dog 被视为 Animal 的实例。


3. 检查对象是否实现某个接口

场景:判断对象是否实现了特定接口。

// 接口定义
interface Flyable {void fly();
}
// 实现接口的类
class Bird implements Flyable {public void fly() {System.out.println("Bird flying");}
}public class Main {public static void main(String[] args) {Bird bird = new Bird();System.out.println(bird instanceof Flyable); // true}
}

运行结果Bird 实现了 Flyable 接口,返回 true

4.null 处理


null 使用 instanceof 会直接返回 false

String str = null;
System.out.println(str instanceof String); // false(无空指针异常)

运行结果为:

错误分析:

当你遇到 “Condition'str instanceof String' is always 'false'”

条件“str 是 String 类型”总是“假”。

这个提示时,意味着在代码里使用 instanceof 运算符去判断一个变量是否为 String 类型,然而该变量的类型在编译时就已确定,它不可能是 String 类型,所以这个条件永远为 false。

5.综合对比示例

class Fruit {}
class Apple extends Fruit {}
class Banana extends Fruit {}interface Edible {void eat();
}
class RedApple extends Apple implements Edible {public void eat() {System.out.println("Eating red apple");}
}public class Main {public static void main(String[] args) {Object obj1 = new Apple();      // Apple 是 Fruit 的子类Object obj2 = new RedApple();   // RedApple 是 Apple 的子类,且实现了 EdibleObject obj3 = new Banana();     // Banana 是 Fruit 的子类// 检查是否为 Fruit 或其子类的实例System.out.println(obj1 instanceof Fruit);   // true(Apple 是 Fruit 子类)System.out.println(obj2 instanceof Fruit);   // true(RedApple 是 Fruit 子类的子类)System.out.println(obj3 instanceof Fruit);   // true(Banana 是 Fruit 子类)// 检查是否实现了接口System.out.println(obj2 instanceof Edible);  // true(RedApple 实现了 Edible)System.out.println(obj3 instanceof Edible);  // false(Banana 未实现 Edible)}
}

运行结果:


关键结论

(1).子类向上兼容

●子类对象(如 Apple)会被视为父类(如 Fruit)的实例。

●子类的子类(如 RedApple)也会被识别为父类的实例(继承链向上追溯)。

(2).接口实现

●只要类实现了某个接口(如 Edible),无论继承层级多深,instanceof 都会返回 true。

(3).运行时类型判断 instanceof

●检查的是对象在内存中的实际类型(运行时类型),而不是变量声明的类型。

●例如:Object obj = new Apple(); 中,obj instanceof Apple 仍然为 true。

最后总结

instanceof运算符的使用

1.语法格式:(引用 instanceof 类型)

2.执行结果是true或者false

3.例如:(a instanceof Cat)

●如果结果是true:表示a引用指向的对象是Cat类型的。

●如果结果是false:表示a引用指向的对象不是Cat类型的。

注意事项

  • 基本类型无法使用instanceof 只能用于对象,不能用于基本类型(如 int)。

  • 设计警示:过度使用 instanceof 可能暗示设计问题,考虑用多态或策略模式替代。

通过合理使用 instanceof,可以安全处理类型不确定的场景,尤其在泛型、反射和动态逻辑中非常有用。

http://www.yayakq.cn/news/63505/

相关文章:

  • 漳州做网站配博大钱少a邮件发布wordpress文章
  • 桂林北站附近酒店国外的设计网站
  • 拖拽网站包头公司做网站
  • 中国建设银行招聘官网站头条新闻
  • 足球哪个网站做的比较好大型网站技术架构演进与性能优化
  • 上市公司网站推广方案专业做淘宝开店的网站
  • 玉泉路做网站百度平台商家app下载
  • 企业网站开发网站建设用什么程序
  • 免费创建论坛网站python制作的网站
  • 教育系统网站建设关于推广网站的标题
  • 自用网站开发费用会计分录太原网站建设公司招聘
  • 推广软件公司东莞短视频seo制作
  • 泰和县建设局网站网站前后台
  • 珠海网站建设 骏域网站企业网站系统手机版
  • 专业的网站建设公司排名电商平台怎么注册
  • 品牌网站开发网站维护更新费用
  • 平板电脑可以做网站吗深圳台历制作
  • 贡井移动网站建设网站制作从零开始
  • 东莞石排网站建设毕业设计难度适中的网站开发项目题目
  • 建立网站涉及到哪些企业湖北长城建设实业有限公司网站
  • 可以做本地生活服务的有哪些网站中山外贸出口网站建设多少钱哪里有
  • 京市保障性住房建设投资中心网站南宁网红打卡地有哪些地方
  • 怎么用二维动画做网站首页步骤都有什么网站
  • thinkphp做直播网站潍坊seo教程
  • 美食网站设计论文建筑设计图纸
  • 织梦生成手机网站wordpress 创建时间
  • 高端网站制作上海站霸科技营销型企业网站分析与诊断的步骤
  • 网站后台发了文章看不到电商商城网站建设
  • wordpress免费建站教程网站怎么做评估
  • 理财网站方案建设浉河网站建设