Java Instanof 运算符的应用
前言
instanceof 运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前 面的引用变量是否是运算符后面的类型或其子类型的实例。如果条件成立,则返回 true,否则返回 false。 instanceof 运算符的具体方法
(1)创建父类符文类Rune,代码如下:
//符文类
public class
{ //符文被执行
public void execute(){
}
}
(2)
public class AccelerationRune extends Rune{
@Override
public void executel) {
System.out.println("---执行加速操作英雄速度提升 100%---");
}
}
(3)
public class FantasyRune extends Rune{
public void executel) {
System.out.println("---幻想符文执行产生多个英雄分身---");
}
}
(4)
public class Herof {
//英雄使用符文操作
public void useRune(Rune rune){ System.out.printIn("=========英雄使用了符文=========); /1判断是否是加速符文类型
if(rune instanceof AccelerationRune){
/1使用向下类型转换
AccelerationRune accelerationRune=(AccelerationRune) rune;
accelerationRune.execute();
}else if(rune instanceof FantasyRune){ //判断是否是幻想符文类型
//使用向下类型转换
FantasyRune fantasyRune=(FantasyRune) rune; //判断是否是加速符文类型
fantasyRune.execute();
}
}
public static void main(Stringl] args) {
Hero hero=new Hero();
Rune aRune=new AccelerationRune(); //创建加速符文对象
Rune fRune=new FantasyRune(); //创建分身符文 hero.useRune(aRune);
hero.useRune(fRune);
}
}
总结
说明
(ype)运算符为前置类型转换运算符,type表示将要转换的类型。
注意
使用 instanceof 运算符时,需要注意 instanceof 运算符前面操作数的编译时,类型要么与后面的类相同,要么 与后面的类具有父子继承关系,否则会引起编译错误。