关键字instanceof 是用来判断前后对象是否有关系:
instanceof 常用来检测强制类型转换的对象是否兼容,多用于if判断,当了II型那个不兼容时候回抛出异常
检验过程:
这分为两中类型:编译时 和 运行时
instanceof使用格式:(要转换类型=父类类型,转换至类型=子类类型)
if(要转换类型的变量 instanceof 转换至的类型 ){
//类型兼容时转换操作
}else{
//类型不兼容时操作
}
判断要求:变量的编译时类型 是 转换至类型的父类
编译时验证:
编译时类型 和 要转换至类型 是否兼容
----->兼容时通过,不兼容时报错,失败
运行时验证:
运行时类型 和 要转换至类型 是否兼容
----->兼容时通过返回true,不兼容时返回false
【编译时 和 运行时 的区别】==多态的体现
编译时 编译的是等号左边的类型(父类类型)
运行时 运行的是等号右边的类型(一般是子类)
【多态是针对对象的方法的,对象的属性不具备多态】
在多态中的方法的特点:
编译的时候 查看的是父类中是否有该方法
运行的时候 调用的是子类中的方法