Java中instanceof 的使用和向下转型的说明
初步理解
- 有了对象的多态性以后,内存中实际上加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法,子了特有的属性和方法不能调用
举例:Person p1 = new Man();
这里的p1就不能调用子类Man所持有的方法、属性,因为在编译的时候这里的p1是Person类型。
- 如何才能调用子类特有的属性和方法?答:使用强制类型转换符
举例:Man m1=Man(p1);
- 使用强转时可能出现ClassCastException异常:
举例:(局部代码)
Person person1 = new Man();