其实这个问题以前也困扰过我。我个人理解的一个应用场合就是,当你拿到一个对象的引用时(例如参数),你可能需要判断这个引用真正指向的类。所以你需要从该类继承树的最底层开始,使用instanceof操作符判断,第一个结果为true的类即为引用真正指向的类。
例如下面的例子:
class Person{}
class Student extends Person{}
class Postgraduate extends Student{}
class Animal{}
public class InstanceofTester {
public static void main(String[] args) {
instanceofTest(new Student());
}
public static void instanceofTest(Person p){
// 判断p的真正类型
if (p instanceof Postgraduate){
System.out.println("p是类Postgraduate的实例");
} else if(p instanceof Student){
System.out.println("p是类Student的实例");
} else if(p instanceof Person){
System.out.println("p是类Person的实例");
} else if(p instanceof Object) {
System.out.println("p是类Object的实例");
}
/*if(p instanceof Animal){//此错编译错误,所以做注释
System.out.println("p是类Animal的实例");
}*/
}
}
这个程序的输出结果是:p是类Student的实例
Person类所在的继承树是:Object<--Person<--Student<--Postgraduate。
这个例子中还加入一个Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。
你可以跑跑程序,应该就明白什么意思了。
instanceof的应用场合应该还有其它,看看其他朋友有没补充。
分享到:
相关推荐
java instanceof运算符
Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 java object(共9页).pptx Java SE编程入门...
instanceof 马克-to-win java视频的详细的描述介绍
当我们使用`instanceof`时,Java会比较对象的实际类型和指定的类型。如果对象的实际类型是右侧类的实例,或者是其子类或实现了右侧接口的类,`instanceof`就会返回`true`。 此外,`instanceof`还可以用于null值,当...
《深入理解Java `instanceof` 关键字的实现机制》 `instanceof` 是Java语言中一个非常重要的关键字,它用于判断对象是否属于某个类或其子类(或实现了某个接口)。在Java的世界里,`instanceof` 关键字扮演着类型...
在使用多态时,应避免重写静态方法、final 常量和私有方法,因为它们不会受到多态的影响。静态方法属于类而不是实例,final 常量一旦赋值不能更改,而私有方法在子类中不可见,因此无法被重写。 总之,方法的重写和...
在本文中,我们将通过实例代码详细介绍 Java instanceof 和 getClass() 的区别和使用场景。 一、instanceof 操作符 instanceof 操作符用于判断对象是否是某个类或其子类的实例。语法格式为:对象 instanceof 类名...
`instanceof`是Java语言中的一个关键字,用于检查对象的类型。它可以帮助程序员确定对象是否属于特定类或者其子类(或实现的接口)的实例。`instanceof`操作符的语法结构是: ```java object instanceof ClassName ...
Java的`instanceof`关键字是Java语言中用于判断对象类型的工具,它可以帮助程序员确定一个对象是否属于特定的类或者其子类(或接口)的实例。`instanceof`操作符的语法是`object instanceof ClassName`,其中`object...
Java instanceof 运算符的使用方法 Java instanceof 运算符是 Java 语言中的一种二元运算符,它用于判断前面的对象是否是后面的类、接口、抽象类或其子类、实现类的实例。如果是,则返回 true,否则返回 false。 ...
总结来说,`instanceOf`在Java中是一个有用的工具,它允许我们在运行时检查对象的类型,但应谨慎使用,以保持代码的清晰和高效。在编写多态代码时,尽量依赖于接口和继承的性质,而不是依赖于`instanceOf`的检查。
在 Java 中,`instanceof` 运算符经常与 `Class` 类结合使用,以便实现更多的类似操作。 在 Java 中,`instanceof` 运算符的语法为 `object instanceof class`,其中 `object` 是要检查的对象,`class` 是要检查的...
Java中的`instanceof`运算符是用来在程序运行时判断一个对象是否属于某个特定类或其子类(或者实现了某个接口)的关键字。它允许我们动态地检查对象的类型,这对于多态性和类型安全的编程非常有用。以下是`...
在Java编程语言中,`instanceof`是一个十分重要的关键字,用于判断一个对象是否属于特定的类或接口。本文将详细解释`instanceof`的关键特性和使用场景,并通过示例代码加深理解。 #### 一、基本概念 `instanceof`...
在Android开发中,Java语言是主要的编程工具,而在Java中,`instanceof`关键字扮演着重要的角色。本文将深入探讨`instanceof`的关键字用法及其在Android开发中的应用场景。 `instanceof`是一个二元操作符,它用于...
java学习-java中的继承extents和instanceof关键字
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,它主要用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者确定对象的实际类型,从而在运行时进行类型检查,执行条件操作或者执行多...
在Java编程语言中,`super`关键字和`instanceof`运算符是两个非常重要的概念,它们在处理类的继承关系时发挥着关键作用。本文将详细介绍这两个关键字的使用方法。 首先,`super`关键字用于访问和调用父类的成员。在...