多态存在的三个必要条件: 1.需要有继承关系的存在 2.需要有方法的重写 3.需要有父类的引用指向子类对象 例子程序 public class DuoTaiAnimal { public String name; DuoTaiAnimal(String name){ this.name=name; } public void enjoy(){ System.out.print("动物叫声·····"); } } public final class DuoTaiBird extends DuoTaiAnimal{ String forcolor; DuoTaiBird(String name,String forcolor){ super(name); this.forcolor=forcolor; } public void enjioy(){ System.out.print("鸟叫声......"); } } public class DuoTaiCat extends DuoTaiAnimal { public String corol; DuoTaiCat(String name,String corlor){ super(name); this.corol=corlor; } public void enjoy(){ System.out.print("猫叫声····"); } } public class Lady { public String name; DuoTaiAnimal pah;//引用一个Animal对象(宠物) Lady(String name,DuoTaiAnimal pah){//将Animal对象传给构造方法 this.name=name; this.pah=pah; } public void myPatEnjoy(){//自定义方法内部引用的是当前引用的Animal对象的enjoy方法 pah.enjoy(); } } public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub DuoTaiCat c=new DuoTaiCat("cat1","whit");//创建一个DuoTaiCat对象 Lady l=new Lady("小红",c); // 将c传给lady类的构造方法,虽然此构造方法引用的是Animal对象, // 但是我传的是Cat对象·所以根据多态的原理, // 它会在执行的时候找到对象的实际对象使用(Cat)所以执行的是Cat对象的enjoy方法!! l.myPatEnjoy(); } }