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