多态
----- 灵活性
父类(接口)引用指向子类(实现类)对象
Animal a = new Cat();
可以调用子类重写的父类的方法(shout()),但不能调用子类自己的方法(如Cat类中的eatfinsh())
Class(Interface) Animal {
shout(){ } (shout(); )
}
Class Cat extends(implements) Animal {
shout(){
System.out.println(“喵”);
}
eatFish(){ }
}
Class Dog extends(implements) Animal {
shout(){
System.out.println(“汪”);
}
}
在一个方法中需要用到Animal,但不知道具体哪一个子类的时候就传一个父类进去
public static void test(Animal a){
a. shout();
}
在IOC框架中,把创建对象的权利交给容器管理,如果容器创建了一个Cat类的对象,那么执行test方法传参进去之后,运行结果会输出“喵”。