instanceof关键字
- 实现父类转型为子类的效果(向下转型)
- 有了对象的多态性以后,堆内存中加载了子类继承的结构和子类特有的属性和方法
- 但是声明为父类类型,无法调用子类特有的成员.
使用强制类型转换方法实现调用子类特有成员的效果
Person p = new Man(); Man m = (Man) p ;//运行正常 Woman w = (Woman) p ; //编译可以通过,但是会出现ClassCastException
- 为避免向下转型时出现ClassCastException异常,在转型之前,先进行instanceof的判断,一旦返回true就进行转型.
- 如果a instanceof A is true,则a istanceof B is true(B是A的父类).
Person p = new Woman (); Man m = (Man) p;//编译通过,运行不通过
Object obj = new Woman (); Person p = (Person) obj;//可以通过
Person p = new Person (); Man m = (Man) p4;//编译通过,运行不通过
Object o = new Date (); String str = (String) o;//编译通过,运行不通过
1,4为无关类型,不能强转
3结构不同,不能
2间接父类转型
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。