java基础:instanceof关键字
instanceof关键字
可以用instanceof关键字判断一个类是否实现了某个接口,也可以用它来判断一个实例化对象是否属于一个类。
语句格式:
对象 instanceof 类 (或接口)
代码示例:
//instanceof关键字的用法
interface Human{}
class Student implements Human{}
class Postgraduate extends Student{}
class Animal{}
public class InstanceofDemo {
public static void main(String[] args) {
System.out.println("Postgraduate 的对象:");
fun(new Postgraduate());
}
public static void fun(Object p) {
if (p instanceof Animal)
System.out.println("是类Animal的实例");
if (p instanceof Postgraduate)
System.out.println("是类Postgraduate的实例");
if (p instanceof Student)
System.out.println("是类Student的实例");
if (p instanceof Human)
System.out.println("是接口Man的实例");
if (p instanceof Object)
System.out.println("是类Object的实例");
}
}
运行结果
Postgraduate 的对象
是类Postgraduate的实例
是类Student的实例
是接口Man的实例
是类Object的实例
画图解释
总结:
- instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类的实例。如果是返回true,否则返回false;
- null instanceof 类或接口返回的都是false;
- 在多态性出现时,instanceof关键字会很有用,一般做强制类型转换之前都会使用该关键字先判断一下,然后再进行转换的。
- instanceof关键字左操作数和右操作数要有继承或者实现关系。