2楼说的很通俗,反应到程序上来列,往往是通过接口(interface)来实现的。举个例子。 public interface Animal{ public void run(int leg); } 上面的定义了一个动物的接口,定了一个跑的方法,传入一个参数leg(腿)的数量。 public class Dog implements Animal(){ private int leg; @Override public void run(int leg){ System.out.println("我用4个腿跑"); } } 定义一个类狗,实现动物类。 public class Snake implements Animal(){ private int leg; @Override public void run(int leg){ System.out.println("我没有腿,我爬的!"); } } 定了一个蛇类,也实现动物类。public class Test(){ public static void main(String args[]){ Test t = new Test(); Animal an = new Dog(); Animal ani = new Snake(); t.howAnimalsRun(an); t.howAnimalsRun(ani); } public void howAnimalsRun(Animal an){ an.run(); } }可以看上面的那个Test类,他有一个方法,就是看动物如果跑的。我们传进去的都是animal,但是却分别是调用了dog snake的run方法。这就是多态。 我也只能讲到这个地步,自己多看一下,想一下我这个例子吧。希望你明白,多态是一个非常重要的概念,很多设计模式都是利用这点来做的。直接在回贴的地方写代码真累...不满意也希望给点辛劳分哈。。
public interface Animal{
public void run(int leg);
}
上面的定义了一个动物的接口,定了一个跑的方法,传入一个参数leg(腿)的数量。
public class Dog implements Animal(){
private int leg;
@Override
public void run(int leg){
System.out.println("我用4个腿跑");
}
}
定义一个类狗,实现动物类。
public class Snake implements Animal(){
private int leg;
@Override
public void run(int leg){
System.out.println("我没有腿,我爬的!");
}
}
定了一个蛇类,也实现动物类。public class Test(){
public static void main(String args[]){
Test t = new Test();
Animal an = new Dog();
Animal ani = new Snake();
t.howAnimalsRun(an);
t.howAnimalsRun(ani);
} public void howAnimalsRun(Animal an){
an.run();
}
}可以看上面的那个Test类,他有一个方法,就是看动物如果跑的。我们传进去的都是animal,但是却分别是调用了dog snake的run方法。这就是多态。 我也只能讲到这个地步,自己多看一下,想一下我这个例子吧。希望你明白,多态是一个非常重要的概念,很多设计模式都是利用这点来做的。直接在回贴的地方写代码真累...不满意也希望给点辛劳分哈。。
-
http://blog.csdn.net/zxg0807/archive/2007/11/15/1886394.aspx
-
http://blog.csdn.net/thinkGhoster/archive/2008/04/19/2307001.aspx上面的介绍楼主 可以参考。