美文网首页
方法的重载(overload)

方法的重载(overload)

作者: 张轻舟 | 来源:发表于2018-11-06 20:39 被阅读10次

问题
之前已经写了一个方法sumInt用来计算两个int类型数字的和,如果要是想计算两个float类型数字的和呢?ok,那就再来写一个sumFloat方法,除此之外,还有long类型,double类型,如果每种类型都要进行求和计算的话,就会像下面这种情况写4个方法了。

public class MethodTest{

    public static void main(String[] args){

        System.out.println(sumInt(10,20));

        System.out.println(sumDouble(1.0,2.0));

        System.out.println(sumLong(10L,20L));

        System.out.println(sumFloat(1.0F,2.0F));

    }

    public static int sumInt(int a,int b){

        return a + b;

    }

    public static double sumDouble(double a,double b){

        return a + b;

    }

    public static long sumLong(long a,long b){

        return a + b;

    }

    public static float sumFloat(float a,float b){

        return a + b;

    }

}

方法重载(overload)
上面程序有缺点,定义的4个方法,功能上都是计算两个数字的和,只不过传入的参数类型不同,调用者在调用的时候,需要记忆每个方法的名字,并且需要自己根据传入参数的类型来判断调用相应的方法,这样使用起来不是很方便,那为了使用方便,改造一下上面的代码

public class MethodTest{

    public static void main(String[] args){

        System.out.println(sum(10,20));

        System.out.println(sum(1.0,2.0));

        System.out.println(sum(10L,20L));

        System.out.println(sum(1.0F,2.0F));

    }

    public static int sum(int a,int b){

        return a + b;

    }

    public static double sum(double a,double b){

        return a + b;

    }

    public static long sum(long a,long b){

        return a + b;

    }

    public static float sum(float a,float b){

        return a + b;

    }

}

上面将之前的代码里面的4个方法名全部改成一样的了,这种情况叫做方法重载(overload)。

方法重载发生的条件

发生在同一个类中.
方法名相同
参数列表不同(类型,个数,顺序)
注意:

方法重载和返回值类型无关
方法重载和方法的修饰符列表无关。

//参数的类型不同,构成重载
public static void m1(int a){}
public static void m1(double a){}

//参数的个数不同,构成重载
public static void m2(int a,int b){}
public static void m2(int a){}

//参数的顺序不同,构成重载,不过开发中不这样使用    
public static void m3(int a,double b){}
public static void m3(double a,int b){}

//以下两个m4方法并没有构成重载.
//两个方法完全一样,错误
//public static void m4(int a){}
//public static void m4(int b){}


/*
方法的重载和方法的返回值类型无关,不构成重载
public static void m5(){}
public static int m5(){
    return 100;
}
*/


/*
方法的重载和方法的修饰符列表无关,不构成重载
static void m6(){}
public static void m6(){}
*/

小练习

请问System.out.println()这个方法是否构成重载?

答案

构成重载

    System.out.println(1024);//传入int类型
    System.out.println(10.24);//传入double类型    
    System.out.println(true);//传入boolean类型
    System.out.println('m');//传入字符类型
    System.out.println("monkey1024.com");//传入字符串类型

相关文章

  • 方法重载overload,方法重写override,隐藏new

    方法重载overload,方法重写override,隐藏new 1.方法重载overload:同一个类中有两个或多...

  • 方法重载与方法重写(@Overload @Override)

    java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,...

  • Java面试题

    1、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分? 答:方法的重载...

  • JAVA方法重载与方法重写辨析

    一、重载(overload)和重写(override)的区别?重载的方法能否根据返回类型进行区分? 方法的重载和重...

  • 方法重载overload

    方法重载:是指一个类中可以定义多个方法名相同,但参数不同的方法。 构成重载:形参类型、形参个数、形参顺序不同 不构...

  • 方法重载(overload)

    方法重载:同一方法名,不同参数类型或不同参数个数。(大前提:同一类下) 好处:只需要记住唯一方法名,就可以实现类似...

  • Java面向对象知识点整理

    不定期更新,欢迎指正 1. 重载、重写和隐藏 1). 重载(overload): 方法重载就是多个方法名称相同但是...

  • JAVA基础学习笔记(二)

    1.方法 方法声明格式: 2.方法的重载overload 重载(overloading) 是在一个类里面,方法名字...

  • Java 面向对象有哪些知识点(整理精选)

    一、重载、重写和隐藏 1、重载(overload): 方法重载就是多个方法名称相同但是参数类型或者参数个数不同的方...

  • JAVA基础_方法的重载

    java语言当中的方法的重载: 1、方法重载又称为Overload 2、方法重载什么时候使用?【当在同一个类中,方...

网友评论

      本文标题:方法的重载(overload)

      本文链接:https://www.haomeiwen.com/subject/wwrpxqtx.html