多态举例:
class Father {}
class Son extends Father{}
class Test {
public static void main(String[] args){
//原来
Son s = new Son();
//多态
Father fa = new Son();
}
}
//Animal DOg Cat 共同的eat dog---lookHome cat---catchMouse
class Test {
public static void main(String[] args){
Animal an = new Dog();
Animal an2 = new Cat();
Cat c = new Cat();
test(c); //可以传递子类对象
test(new Dog())
}
//问题: 接受的是父类,能不在调用的时候传递Animal的子类
public static void test(Animal an){
an.eat(); //调用Animal中的方法
//加一个判断
if( an instanceof Cat){ //判断an是不是cat,如果是返回true
Cat c = (Cat)an;
c.catchMouse();
}
if (an instanceof Dog){ //判断an是不是dog,如果是返回true
Dog d = (Dog)an;
d.lookHome();
}
}
}