Java instanceof关键字

Java instanceof关键字教程

Java 语言 中,我们的对象是有对应的类型的,也就是说每个对象都会有具体的类与之对应。instanceof 就是用来判断该对象是哪个类的对象。

Java instanceof关键字

语法

对象 instanceof//返回 boolean 类型

参数

参数 描述
对象 具体的一个对象,要判断是什么类型的对象
instanceof instanceof 关键字
类名 被判断对象属于哪个类的名字

说明

instanceof 执行后的返回值为 boolean 类型的。如果是 true 就表明该对象是该类的对象,如果是 false 表示不是。

案例

我们定义一个父类

package com.haicoder.net.changetype; public class FatherClass { public void fun1(){ System.out.println("调用父类的 fun1 方法"); } public void fun2(){ System.out.println("调用父类里面的 fun2 方法"); } }

定义一个子类

package com.haicoder.net.changetype; public class ChildClass extends FatherClass { public void fun1(){ System.out.println("调用子类的 fun1 方法"); } public void fun3(){ System.out.println("调用子类的 fun3 方法"); } }

定义一个测试类

package com.haicoder.net.changetype; public class TestMain { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net) \n"); FatherClass fatherClass = new ChildClass(); System.out.println("fatherClass instanceof FatherClass : " + (fatherClass instanceof FatherClass)); System.out.println("fatherClass instanceof ChildClass : " + (fatherClass instanceof ChildClass)); FatherClass fatherClass1 = new FatherClass(); System.out.println("fatherClass1 instanceof FatherClass : " + (fatherClass1 instanceof FatherClass)); System.out.println("fatherClass1 instanceof ChildClass : " + (fatherClass1 instanceof ChildClass)); } }

运行结果如下:

13 instanceof.png

从运行结果中我们可以看到,通过子类实例化的对象同时也是子类和父类的实例,所以可以直接进行向上或向下转型,如果直接使用父类实例化本类对象,则一定就不再是子类的实例了。

Java instanceof总结

在进行 类型转换 的时候,我们可以借助 instanceof 来判断对应的对象是否可以属于要被转换对象的类。如果是就可以转型,如果不是就不能。