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 类型的对象 nameMain 类型的对象 obj。 当我们运算 name instanceof Stringobj 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 类的实例