重载 
将最初定义在类中的方法在其子类中再加以不同的实现。 
重写 
指在同一范围内可使用同一个标识符来表示多个项。Java 中,可对方法进行重写,但不能对变量或运算符进行重写。 

解决方案 »

  1.   

    簡單的區分就是
    overriding是相同的method name相同的parameter list而且在不同的class里(in a super/sub class clain)
    overloading是相同的signature(method name和parameter list完全相同)可以在相同的class里, complier distinguished between over loaded methods bases on actural parameters.
    講的複雜點還需要涉及polymorphism
      

  2.   

    上面不小心寫錯了....
    overriding是相同的signature(即method name和parameter list完全相同)
    overloading是相同的method name 不同的parameter list, complier distinguished between over loaded methods bases on actural parameters.
      

  3.   

    overring在不同的类中,一般指子类overring中的方法overloading在同一个类中,但其方法签名不同(参数名不同)
      

  4.   

    to weimenren, overloading不必在同一个class中的...
      

  5.   

    superclass: A 父类
    subclass: B 子类要在B中更进一步更合适地实现某个方法,一般用override

    A是 Class 任意边形 
    method: draw() {}
    B是 Class 正方形
    method: draw() {} 
    这时候B就应该重写draw()方法,以便更好实现draw画图这个功能 
    ========
    而overloadding 用于不同参数,因为很可能你希望传入不同的type,如
    sort(int[] a,int begin, int end)
    sort(String[] a, int begin, int end)
    这个例子你希望对 int[] 或 String[] 进行排序,而提供两个方法名又无必要,所以使用overload就是最好的方法