通俗点的语言解释一下方法的多态性,用法,已经在什么情况下用多态性,有什么好处,最好举个例子,谢谢大家了,小弟新手!拜托!越详细越好,越通俗越好!

解决方案 »

  1.   

    要理解多态性就首先理解方法的后期绑定。方法的后期绑定也叫做方法运行时的绑定。什么叫绑定?绑定就是方法名和方法体链接的过程。在编译时知道要调用的方法名,但是不知道要调用的方法主体,而运行时绑定就为我们解决了这个问题。java中除了static、final、private方法修饰的方法是前期绑定外其余的方法都是后期绑定,这也就是为什么static、final、private方法没有多态性的原因了。因为多态要依靠方法的后期绑定来完成。比如一个父类:Shape 它有个方法draw()。 Shape有两个子类: Cricle、Square分别重写了Shape的draw()方法.class Shape { 
      public void draw() {} 
      public void erase() {} 
    }class Circle extends Shape { 
      public void draw() { 
      System.out.println("Circle.draw()"); 
      } 
      public void erase() { 
      System.out.println("Circle.erase()"); 
      } 
    } class Square extends Shape { 
      public void draw() { 
      System.out.println("Square.draw()"); 
      } 
      public void erase() { 
      System.out.println("Square.erase()"); 
      } 
    } public class Test62
    {
    public static void main(String... args) {
    Shape s = new Circle();
    s.draw();    //输出: Circle.draw() s = new Square();
    s.draw();    //输出: Square.draw()
    }
    }
    在编译时s唯一可以确定的就是要调用是draw()方法,但是具休要执行的方法体是哪一个没有确定。在执行时根据方法的后期绑定确定s所指向的是new Circle()的内存空间确定draw()的方法体是Circle里的draw()方法体。所以会执行其对应的draw()方法。同样对于
    s = new Square();
    s.draw();    //输出: Square.draw()
    也是如此。
      

  2.   

    System.out.println(X);
    X:
    这里可以是很多数据类型  你看输出 你放int  double string char 数组 对象 都可以输出。
    这就是方法的多态。
      

  3.   

    JAVA里没有多继承,一个类之能有一个父类。  
    而继承的表现就是多态。一个父类可以有多个子类,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样用父类的变量去引用不同的子类,在调用这个相同的方法print()的时候得到的结果和表现形式就不一样了,这就是多态,相同的消息(也就是调用相同的方法)会有不同的结果。举例说明:  //父类 
    public class Father{  
    //父类有一个打孩子方法  
    public void hitChild(){} 

    //子类1 
    public class Son1 extends Father{  
    //重写父类打孩子方法  
    public void hitChild(){  
    System.out.println("为什么打我?我做错什么了!"); } 

    //子类2 
    public class Son2 extends Father{  
    //重写父类打孩子方法 public void hitChild(){  
    System.out.println("我知道错了,别打了!"); } 

    //子类3 
    public class Son3 extends Father{  
    //重写父类打孩子方法 public void hitChild(){  
    System.out.println("我跑,你打不着!"); } 

    //测试类 
    public class Test{ 
     public static void main(String args〔〕){ 
     Father father; 
     father = new Son1();  
     father.hitChild();  
     father = new Son2();   
     father.hitChild(); 
     father = new Son3();  
     father.hitChild(); 
     } 
          } 
      
    都调用了相同的方法,出现了不同的结果!这就是多态的表现!  
      

  4.   

    方法的多态性有两个方面:
    1、子类重写父类方法,这个主要在调用的时候注意就好了,关键是子类父用的时候调用的时候要注意。这个前面大家都说得很清楚,自己随便写个例子打印一下就行了。
    2、就是同一个类中的一个方法的多态。也就是说同一个方法名可以有多个写法,调用的时候根据方法的参数能准确调用。eg. public String A(int a) {}; public String A(){};这两个方法在同一个类中出现,就属于多态,要注意的是参数初始化问题带来的可能不能准确调用的问题就行了。