java中方法的重载的什么意思,最好举个例子

如题所述

覆盖是override方法重写 重载是overload
按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下。
重写就是覆盖父类的方法,和父类有相同返回类型,参数,甚至是抛出的异常,重写方法不能为private,运用中最典型的就是对接口方法的覆盖。方法的重写Overriding和重载Overloading是Java多态性的不同表现.
重写Overriding是父类和子类之间多态性的一种表现;如果在子类中定义某方法和其父类有相同的名称和参数,我们说该方法被重写 (Overriding).子类的对象使用这个方法时,将调用子类中的定义,对他而言,父类中的定义如同被"屏蔽"了.
重载Overloading是个类中多态性的一种表现;如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading).重载的方法是能改动返回值的类型.

现实例子:你对比上面看,比如一老爹是木工。儿子继承老爹也是木工。
老爹有个做柜子的独特技术(方法),只需要用到工具锤子和木头(参数),
儿子根据老爹这个做柜子的技术延伸出很多种技术,他懒得再起名就也对外宣称叫做柜子独特技术。
1个继承自老爹,相同的方法名,相同的工具,但有自己的想法,工序有改动。儿子做木工活用到这个技术方法的话就叫重写。
另外的自创,但也叫做柜子独特技术,但用工具不同有:
木头。(儿子牛,不用锤子照样做柜子。。。)
锯子,木头。(也是木头柜子)
锤子,铁皮。(铁皮柜子)
以上3中为重载。
明白?不明白给我发消息。呵呵~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-27
/*方法的重载,就是一个类中允许同时存在一个以上的同名方法,
*只要这些方法的参数个数或者类型不同即可。
*/
public class OverLoadTest{
    public static int add(int a,int b){    //定义一个方法
        return a+b;
    }
    //定义一个与第一个方法相同的名称但参数类型不同的方法
    public static double add(double a,double b){ 
        return a+b;
    }
    public static int add(int a){    //定义与第一个方法参数个数不同的方法
        return a;
    }
    public static int add(int a,double b){    //定义一个成员方法
        return 1;
    }
    //这个方法与前一个方法参数次序不同
    public static int add(double a,int b){
        return 1;
    }
    public static void main(String args[]){
    System.out.println("调用add(int,int)方法"+add(1,2));
    System.out.println("调用add(double,double)方法"+add(2.1,3.3));
    System.out.println("调用add(int)方法"+add(1));
    }
}

本回答被网友采纳
相似回答