Java instanceof (с примерами)

В этом руководстве вы подробно узнаете об операторе 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.

Интересные статьи...