之前已经写了一个方法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(){}
*/

1-3方法的重载(overload)的更多相关文章

  1. 方法的重载overload

    /*方法的重载overload * 重载:在同一个类里可以定义一个或者一个以上的方法 *     参数类型不一致 *     参数数量不一致 *     */ public class Chongza ...

  2. JAVA中继承时方法的重载(overload)与重写/覆写(override)

    JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...

  3. 方法名太多,使用方法的重载(overload)来解决

    package chapter04; /* 问题:方法名太多了,不容易记忆,有时会出错 使用方法的重载(overload)来解决 */public class C09_Method { public ...

  4. java基础学习总结——方法的重载(overload)

    一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样.只要这两方面有其中的一方面不一样就可以构成方法 ...

  5. Java基础---Java方法的重载Overload

    对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦. 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实 ...

  6. Java方法多态性——方法的重载Overload和重写Override

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. 重写(Override) 重写是 ...

  7. java之方法的重载(overload)

    什么是重载? 在任何一个类中,允许存在一个以上的同名的方法,只要它们的参数个数或者参数类型不同即可: 重载的特点? 与返回值无关,只看参数列表.且参数列表必须不同(参数个数或参数类型).调用时,根据方 ...

  8. 重写(Override)与重载(Overload)

    重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类 ...

  9. java方法重写规则 重载

    方法的重写规则 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在 ...

  10. 方法的覆盖(override)、重载(overload)和重写(overwrite)

    body { background-color: white } .markdown-body { min-width: 200px; max-width: 760px; margin: 0 auto ...

随机推荐

  1. python 爬虫1 開始,先拿新浪微博開始

    刚刚開始学. 目的地是两个.一个微博,一个贴吧 存入的话,临时还没想那么多.先存到本地目录吧 分词和推荐后面在整合 mysql mongodb hadoop redius 后面在用 我最终知道为什么大 ...

  2. day 18 面向对象的 继承

    一.概念性知识 面向对象的三大特征:     继承,多态,封装 继承是创建新类的一种方法,在python中,新建的类可以继承一个或多个父类,父类称作基类或超类,新建的类又称作派生类或子类. 继承的好处 ...

  3. 【bzoj3175】[Tjoi2013]攻击装置

    每两个能互相攻击且能放置的点连一条双向边,然后跑二分图最大点独立集即可 #include<algorithm> #include<iostream> #include<c ...

  4. apache benchmark

    1 ab是什么 是一个web高并发测试工具,可以发送get.put.post请求. 2 ab -n和-c共存 -c是concurrency的缩写,即同一时间发送多个请求. -n是指本次总共发送多少个请 ...

  5. Duplicate Observed Data

    在翻看<重构-改善既有代码的设计>这本经典的书,书中就介绍了一个重构方法--Duplicate Observed Data 复制被监视数据的重构方法,使用这种方法能够使界面和对数据的操作隔 ...

  6. javascript查找子节点时,html里的换行可能会被当成节点

    1.直接去HTML里找到该换行的地方去掉换行 2.写一个方法把元素类型为空格而且是文本都删除 function del_ff(elem){ var elem_child = elem.childNod ...

  7. Java异步套接字实例

    服务端 package com.test.server; import java.io.IOException; import java.net.InetSocketAddress; import j ...

  8. box-sizing: border-box;的作用

    box-sizing 属性可以被用来调整这些表现: content-box  是默认值.如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到 ...

  9. threesixty.min.js 和jquery.threesixty.js使用总结----实现360度展示

    最近公司做一个项目需要360度展示汽车的外观,就用到了threesixty.min.js,自己总结一下使用方法: treesixty.min.js 源码: /*! threesixty-slider ...

  10. web_html-day1

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...