Java instanceof
Java 中的 instanceof 运算符用于检查对象是否是特定类的实例。在本教程中,您将通过示例详细了解 Java instanceof 运算符。
在本教程中,您将通过示例详细了解 Java instanceof 运算符。
Java 中的 instanceof
运算符用于检查对象是否是特定类的实例。
instanceof 用法
instanceof 语法:
objectName instanceOf ClassName;
在这里,如果 objectName
是一个 ClassName
类的实例,运算符返回 true
,否则返回 false
。
示例:Java instanceof
public class Main {
public static void main(String[] args) {
// 创建字符串实例
String name = "GoBeta.NET";
// 检查 name 是否 String 实例
boolean result1 = name instanceof String;
System.out.println("name instanceof String: " + result1);
// 创建 Main 的实例
Main obj = new Main();
// 检查 obj 是否 Main 实例
boolean result2 = obj instanceof Main;
System.out.println("obj instanceof Main: " + result2);
}
}
输出
name instanceof String: true
obj instanceof Main: true
在上面的例子中,我们创建了 String
类型的对象 name
和 Main
类型的对象 obj
。
当我们运算 name instanceof String
和 obj instanceof Main
时都返回了 true
。
! 注意:在 Java 中, String
是类而不是原始数据类型。要了解更多信息,请访问 Java String。
instanceof 父类
我们可以使用 instanceof
运算符来检查子类的对象是否也是超类的实例。例如,
// 父类
class Animal {
}
// 子类
class Dog extends Animal {
}
public class Main {
public static void main(String[] args) {
// 创建子类的对象
Dog d1 = new Dog();
System.out.println(d1 instanceof Dog); // 打印 true
System.out.println(d1 instanceof Animal); // 打印 true
}
}
在上面的例子中,我们创建了一个子类 Dog
并继承了 Animal
类。对象 d1
是一个子类 Dog
的实例。
在打印语句中,注意下面表达式:
d1 instanceof Animal
在这里,我们使用 instanceof
运算符来检查 d1
是否也是父类 Animal
类的一个实例。
由此可以看出子类对象是父类实例。
如果像获取更多关于继承的信息,请跳转到 Java 继承章节。
instanceof 接口
instanceof
运算符还用于检查类的对象是否也是该类实现的接口的实例。例如,
interface Animal {
}
class Dog implements Animal {
}
public class Main {
public static void main(String[] args) {
// 创建子类的对象
Dog d1 = new Dog();
System.out.println(d1 instanceof Animal); // returns true
}
}
在上面的例子中,我们创建了一个 Dog
类并实现了 Animal
接口。在打印语句中,注意下面的表达式:
d1 instanceof Animal
这里,d1
是一个 Dog
类的对象, Dog
类并实现了 Animal
接口,d1
就是 Animal
接口的实例。
如果像获取更多关于接口的信息,请跳转到 Java 接口章节。
instanceof Object
在 Java 中,所有的类都是从 Object
类继承而来的。所以,所有类的实例也是 Object
类的实例。
在前面的例子中,如果我们运行下面的语句:
d1 instanceof Object
结果是 true
。
总结
instanceof
用来检查一个对象是否某个类的实例- 对象是它的真实类的实例
- 对象是类的父类或者超类的实例
- 对象是类的接口的实例
- 任何对象都是
Object
类的实例