instanceof运算符
instanceof运算符用于判断一个对象是否是某一个类的实例对象,或者是否是某一个类的子类的实例对象。instanceof的语法形式是:
对象名 instanceof 类名
表达式的值是逻辑值。如果一个对象是一个类或其子类的实例对象,则表达式的值为true;如果一个对象是某一个类或其子类的对象,但没有实例化,则表达式的值为false。
//instanceof的用法
class Base {} //定义基类
class Derived extends Base{} //定义派生类
public class Example17{
public static void main(String[] args) {
Base base=null;
//对象base没有表示Base类的实例对象
Derived derived=null;
//对象derived没有表示Derived类的实例对象
if(base instanceof Base)
//判断base是否是Base类实例对象
System.out.println("对象base是Base类的实例。");
else
System.out.println("对象base不是Base类的实例。");
if(derived instanceof Base)
//判断derived是否是Derived类实例对象
System.out.println("对象derived是Base类及其子类的实例对象");
else
System.out.println("对象derived不是Base类及其子类的实例对象");
base=new Base();//构造一个类的实例,创建对象,没有初始化
derived=new Derived();
System.out.println("对象derived和对象base都实例化后:");//都创建后
//再判断
if(base instanceof Base)
//判断base是否是Base类实例对象
System.out.println("对象base是Base类的实例。");
else
System.out.println("对象base不是Base类的实例。");
if(derived instanceof Base)
//判断derived是否是Derived类实例对象
System.out.println("对象derived是Base类及其子类的实例对象");
else
System.out.println("对象derived不是Base类及其子类的实例对象");
}
}