1.多态:(方法多态)
使程序的最终状态,只有在执行过程中才被决定,而非编译过程就决定
多态存在的必要条件:
要有继承,要有方法重写,父类引用指向子类对象
public static void testAnimalVoice(Animal c){
c.voice();
if(c instanceof Cat){//判断C对象是不是Cat对象,
((Cat) c).catchMouse();
}
}
public static void main(String[] args) {
Animal a = new Cat();//父类引用指向子类对象
Cat a2 = (Cat)a;// (Cat)a强制类型转换,a是父类类型,
testAnimalVoice(a);
a2.catchMouse();//catchMouse()方法是子类的方法,父类引用是不能调用的,所以要将a强制转换成子类再付给a2
}
}
内存分析:
从main函数开始分析,画出内存分析图
2.instanceof:
用于判别一个实例是不是属于某个对象(c instanceof Cat:c是不是属于cat对象)