В этом руководстве вы подробно узнаете об операторе instanceof в Java с помощью примеров.
instanceofОператор в Java используется для проверки, является ли объект экземпляром определенного класса или нет.
Его синтаксис
objectName instanceOf className;
Здесь, если objectName является экземпляром className, оператор возвращает true. В противном случае он возвращается false.
Пример: Java instanceof
class Main ( public static void main(String() args) ( // create a variable of string type String name = "Programiz"; // checks if name is instance of String boolean result1 = name instanceof String; System.out.println("name is an instance of String: " + result1); // create an object of Main Main obj = new Main(); // checks if obj is an instance of Main boolean result2 = obj instanceof Main; System.out.println("obj is an instance of Main: " + result2); ) )
Вывод
name является экземпляром String: true obj является экземпляром Main: true
В приведенном выше примере мы создали имя переменной Stringтипа и объект obj класса Main.
Здесь мы использовали instanceofоператор, чтобы проверить, являются ли name и obj экземплярами Stringклассов и Main соответственно. И trueв обоих случаях оператор возвращается .
Примечание . В Java Stringэто класс, а не примитивный тип данных. Чтобы узнать больше, посетите Java String.
Экземпляр Java во время наследования
Мы можем использовать instanceofоператор, чтобы проверить, являются ли объекты подкласса также экземпляром суперкласса. Например,
// Java Program to check if an object of the subclass // is also an instance of the superclass // superclass class Animal ( ) // subclass class Dog extends Animal ( ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog d1 = new Dog(); // checks if d1 is an instance of the subclass System.out.println(d1 instanceof Dog); // prints true // checks if d1 is an instance of the superclass System.out.println(d1 instanceof Animal); // prints true ) )
В приведенном выше примере мы создали подкласс Dog, который наследуется от суперкласса Animal. Мы создали объект d1 класса Dog.
Обратите внимание на выражение внутри оператора печати:
d1 instanceof Animal
Здесь мы используем instanceofоператор, чтобы проверить, является ли d1 также экземпляром суперкласса Animal.
Java instanceof в интерфейсе
instanceofОператор также используется , чтобы проверить , является ли объект класса также является экземпляром интерфейса , реализуемого классом. Например,
// Java program to check if an object of a class is also // an instance of the interface implemented by the class interface Animal ( ) class Dog implements Animal ( ) class Main ( public static void main(String() args) ( // create an object of the Dog class Dog d1 = new Dog(); // checks if the object of Dog // is also an instance of Animal System.out.println(d1 instanceof Animal); // returns true ) )
В приведенном выше примере класс Dog реализует интерфейс Animal. Обратите внимание на выражение внутри оператора печати:
d1 instanceof Animal
Здесь d1 - это экземпляр класса Dog. В instanceofоператор проверяет , если d1 также является экземпляром интерфейса Animal.
Примечание . В Java все классы наследуются от Objectкласса. Таким образом, экземпляры всех классов также являются экземплярами Objectкласса.
В предыдущем примере, если мы проверим,
d1 instanceof Object
Результат будет true.








