instanceof关键字: 有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法,但是由于变量声明为父类的类型,导致编译时,只能调用父类中有的属性和方法,无法调用子类中特有的属性和方法。 但是我们又想调用子类特有的属性和方法,怎么办? 我们可以使用强制转换 Man m1=(Man)p2; 我们开发中的用的多的是向上转型(多态),向下转型用的很少 注意:当我们使用强制转换时可能出现异常classcastexception 翻译过来就是类强制转换异常,有点像基本数据类型强制转换时候的情况,基本数据类型强制转换可能会有精度损失。 那么问题来了:如何才能没有异常呢?那就是使用instanceof关键字进行判断:if(a instanceof A){ } 如果‘a’是A的实例,则… 如果(a instanceof A)返回值是true,B是A的父类,那么(a instanceof B)也必定是true 总结:不相关的两个类,不可能强转