多态的特点:
1.多态时,父类的引用不能访问子类的特有成员;
多态中的类型转换:
1.当多态时:
1).隐式转换:
Animal a = new Cat();
2).强制转换:
Cat c = (Cat)a;
注意:强转时,要求被强转的变量必须要是"强转的类型",否则运行时会跑出:ClassCastException
2.为了强转安全,我们可以先使用:instanceof关键字判断
使用格式:要强转的变量 instanceof 要强转的目标类型
返回值:true/false
if(a instanceof Cat){
Cat c = (Cat)a;//绝对安全的,在强转前建议这样写,这是一个好的习惯;
}
|
|