多态的基础是:对象既可以作为它自己本身的类型使用,也可以作为它的基本类型(基类)使用。
eg:创建一个包含两个方法的基类,在第一个方法中可以调用第二个方法,然后产生一个继承自该基类的导出类,且覆盖基类中的第二个方法,为该导出类创建一个对象,将它向上转型到基类型并调用第一个方法,发生什么结果?
public class Rodent {
public void eat(){
System.out.println("eat zhizhi");
}
public void GroupUp(){
eat();
System.out.println("group need eat");
}
}
public class Mouse extends Rodent{
public void eat(){
System.out.println("eat zhizhi aaaa");
}
public static void main(String[] args) {
Rodent aa=new Mouse();
aa.GroupUp();
}
}
输出结果:
eat zhizhi aaaa
group need eat
可以看出,输出结果是覆盖了方法eat后的方法。