看《Thinking in Java(2nd Edition)》Chapter 7,或者《Java编程思想(侯捷译)》第七章。

解决方案 »

  1.   

    举个典型的例子吧:)
    class Parent
    {
     public void method1()
     {
      System.out.println("Parent's method1()");
     }
     public void method2()
     {
      System.out.println("Parent's method2()");
      method1();
     }
    }
    class Child extends Parent
    {
     public void method1()
     {
      System.out.println("Child's method1()");
     }
     public void method2()
     {
      System.out.println("Child's method2()");
      method1();
     }
     public static void main(String args[])
     {
      Parent obj=new Child();//这句就实现了多态
      obj.method2();
     }
    }
    意思就是说,声明为父类的对象引用可以指向子类的实例。
    通过子类重写父类方法,在编译时实现动态绑定,也就是说编译器会自动在执行时查找obj.method2()到底应该调用Parent还是Child类里面的method2方法
      

  2.   

    在java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。
    重载是指同意class中,相同的方法名,但是参数不同;重写则是子类覆盖父类中的同名方法,子类的方法必须和父类有相同的参数和返回类型。
      

  3.   

    在java中,重载不能是多态,如果这也是的话,那么java中只有声明为final的方法不叫多态,在java中的多态意思为:多种类型以一种类型看待,且该类型为其他类型的父类型,在执行的时候能找到相对应的类型。
      

  4.   

    在看完一些书之后,总结起来,多态是包括方法的重写和重载的!!比较同意inspire_ray(inspire) 的说法!!
      

  5.   

    我看也没必要非得给多态下个精确的定义,在实际运用中注意区别重载(zhong第四声)和重写(chong第二声)两种的确切含义,充分理解了对象的使用机制后。多态就不难理解了!~