instanceof的用法

java 中的instanceof 运算符是用来判断在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

用法:

result = object instanceof class 

参数:

Result:布尔类型。

Object:必选项。任意对象表达式。

Class:必选项。任意已定义的对象类。

说明:

如果objectclass 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 objectnull,则返回 false

但是instanceofJava的编译状态和运行状态是有区别的:

在编译状态中,class可以是object对象的父类,自身类,子类。在这三种情况下Java编译时不会报错。

在运行转态中,class可以是object对象的父类,自身类,不能是子类。在前两种情况下result的结果为true,最后一种为false。但是class为子类时编译不会报错。运行结果为false

接口Person

public interface Person {
public void eat();
}

实现类People

public class People implements Person {
private int a=0;
 @Override
 public void eat() {
  System.out.println("======"+a);
 }
}

子类xiaoming

public class xiaoming extends People {
private String name;

@Override
public void eat() {
 System.out.println("+++++++++");
}
}

主函数

public static void main(String[] args) {
  People p=new People();
  xiaoming x=new xiaoming();
  System.out.println(p instanceof Person);
  System.out.println(p instanceof xiaoming); -----2
  System.out.println(x instanceof Person);
  System.out.println(x instanceof People);
 }

注意:上面2处的代码在编译时不会报错。

运行结果:

true

false

true

true

原文地址:https://www.cnblogs.com/gaoguofeng/p/10122577.html

时间: 2024-10-29 13:09:10

instanceof的用法的相关文章

java 中的instanceof的用法

instanceof 运算符是Java.php的一个二元操作符(运算符),和==.>.<是同一类东西.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据.可以用来判断继承中的子类的实例是否为父类的实现.相当于c#中的is操作符.java中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出.  用法:result = object instanceof

在Java中instanceof的用法

Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:result = object instanceof class参数:Result:布尔类型.Object:必选项.任意对象表达式.Class:必选项.任意已定义的对象类.说明:如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一

Java中isAssignableFrom()方法与instanceof()方法用法

一句话总结: isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断. isAssignableFrom()方法是判断是否为某个类的父类,instanceof()方法是判断是否某个类的子类. 1. Class.isAssignableFrom()方法 Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口.   格式为: Class1.isAssignable

java中instanceof的用法

A instanceof B 前一个操作数通常是一个引用类型的变量. 后一个操作数通常是一个类(也可以是接口,可以把接口理解为特殊的类). 它用于判断前面的对象是否是后面的类,或其子类.实现类的实例. 注:instanceof运算符前面的操作数的编译时类型:要么与后面的类相同,要么与后面的类具有父子继承关系(谁继承谁都可以). Object hello="Hello"; hello instanceof Object;//true :String与Object有继承关系 hello i

instanceof的用法①

1 public class typeof1{ 2 private String a="zzw"; 3 public void instance(){ 4 if(a instanceof String) //判断是不是String类型的 5 { 6 System.out.println("hello world!"); 7 } 8 } 9 public static void main(String args[]){ 10 new typeof1().instanc

javascript 中instanceof的用法

检测某个对象是不是另一个对象的实例 function Laker(){} function Bull(){} var la = new Laker() ; alert(la instanceof Laker) ; 返回结果:true function Laker(){} Laker.prototype = {} ; function Bull(){} var la = new Laker() ; Bull.prototype = Laker.prototype ; alert(la instan

5.23日 instanceof的用法

instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据. 举个例子: String s = "I AM an Object!"; boolean isObject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Ob

typeof()和instanceof的用法区别

typeof() typeof() 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型.,typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined. 我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){alert("ok")},而不要去使用if(a)因为如果a不存在(未声明)则会出错,对于

类方法isAssignableFrom、instanceof和asSubclass的区别及实例

isAssignableFrom public boolean isAssignableFrom(Class if (List.class.isAssignableFrom(ArrayList.class)) { System.out.println("list is assignable from arraylist"); } if (ArrayList.class.isAssignableFrom(List.class)) { System.out.println("ar