您的位置:首页 > 编程语言 > Java开发

Java中instanceof的解析

2020-07-14 06:31 101 查看

instanceof含义

例:a instanceof A,为判断左边的a是否是右边A的实例,如果a是A的实例,那么返回true,否者返回false,这个判断主要是为了防止a强转为A时报错。

举例

//父类
class Person{
}
//继承了Person类
class Man extends Person{
}
//继承了Person类
class Woman extends Person{
}

public class Test{
public static void main(String[] args){
//此处p1只能访问Person中的方法
//如果该方法被子类Man重写了,那么访问的就是Man中方法,无法访问Man中特有的方法
//但是p1中加载了Man中特有的方法,只是当前情况无法访问
Person p1 = new Man();//这个是多态,也称向上转型

//如果p1想要访问Man中特有的方法,就需要向下转型
//使用强转符进行向下转型
//可是直接转型可能会报错,
//例如Woman woman = (Woman)p1;会报错,因为p1中并没有加载有关Woman有关的方法
//为了防止转换出错,就使用instanceof来判断,左边是否是右边的实例,如果是,返回true,不是就返回false
if(p1 instanceof Man){
Man man = (Man)p1//也称向下转型
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: