文档章节

java中的方法重载( Overload )

牧羊人Berg
 牧羊人Berg
发布于 2015/10/13 23:48
字数 424
阅读 61
收藏 0
  1. 首先,java中存在两种意义的多态, 重载(Overload)和重写(Override),重写是与继承有关的多态。

  2. 第一种:操作名称的多态,即有多个操作具有相同的名字,但这些操作锁接受的消息类型必须不同。

    第二种:和继承有关的多态,指同一个操作被不同而类型对象调用时可能产生不同的行为。

    这里将简单的介绍第一种多态,简单的认识下java中方法的重载:

  3. 那什么是重载? 即一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同:

    1)  参数个个数不同。

    2)  参数个数相同,但参数列表中对应的某个参数的类型不同。

    另外还需要注意的是:方法的返回类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使返回类型不同,也必须保证参数不同。

     

     

  4. public class People {
        public int hello(int x, int y){
            return x+y;
        }
        public float hello(float x, int y){
            return x+y;
        }
        public double hello(double x, int y){
            return x+y;
        }
    
    }
    
    
    public class TestPeople {
        /**
        * @author 牧羊的伯格女皇
        * @param args
        * @date 2015-10-13
        */
        public static void main(String[] args) {
            People p = new People();
            System.out.println(p.hello(10, 10));  //20
            System.out.println(p.hello(12.12f, 7)); //19.119999
            System.out.println(p.hello(12.03, 7));  //19.03
        }
    }

   

      5. 在写方法的重载的时候,还需要避免重载出现歧义,即不清楚应当执行重载方法中的哪一个,让程序无法通过编译。

void cry(double x, int y){
    ....  
}
void cry(int x,double y){
    ...  
} 

p.cry(10,10);   //会出现提示信息 :对cry的引用不明确。

 

 

© 著作权归作者所有

共有 人打赏支持
牧羊人Berg
粉丝 23
博文 96
码字总数 87512
作品 0
深圳
【Java】疯狂Java基础(一)——面向对象的特征:继承、封装和多态

一、前言 小编记得,刚接触计算机相关的课程的时候,接触的是c++,c++的老师一上来就说c++是面向对象的,c语言是面向过程的。面向对象比面向过程厉害,是从面向过程发展过来的的。 当时有一个...

kisscatforever
03/28
0
0
115个Java面试题及回答

解释下可用的线程状态. 在执行期间, 线程会处于以下状态中的一种: Runnable: 线程已准备就绪, 但没有立即运行. Running: 处理器正在执行的线程代码. Waiting: 处于阻塞状态的线程, 等待外部某...

Yamazaki
2014/04/25
0
0
100道Java面试题收集整理及参考答案

不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题。 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/...

Java团长17
07/11
0
0
Java中的静态分派和动态分派

本文以Java多态的一些基本特征来谈一下分派调用。 在开始,依旧用常用方式,例子来引入,看一看下面例子的输出: /*** @author Sel 2014.4.3 */public class StaticDispatch { public void ...

Sel_hui
2014/04/03
0
3
04-《深度拆解Java虚拟机》之 JVM是如何执行方法调用的?(上)

一、问题引入 前不久在写代码的时候,郑雨迪老师不小心踩到一个可变长参数的坑。它就是由于可变长参数方法的重载造成的。(注:官方文档建议避免重载可变长参数方法,见 [1] 的最后一段。) ...

飞鱼说编程
09/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ajax 提交返回map集合 获取不到值

后台java代码 @RequestMapping("/cameraList") @ResponseBody public Map<String, Object> cameraListForPage(@RequestParam(defaultValue = "1", value = "page") Integer page......

S三少S
26分钟前
44
3
TypeScrip最污的技术课-技术胖TypeScript图文视频教程

近日Node.js之父瑞安达尔(Ryan Dahl)发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,使用 rust 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终...

JamesView
28分钟前
7
0
Es学习笔记

1.过滤排重聚合查询 筛选出某一个聚合值的个数统计。相当于mysql的distinct. 关键字:cardinality "aggs": { "2":{ "cardinality": { "field": "field" } ...

Gmupload
30分钟前
1
0
h5语义化标签

语义化HTML:用最恰当的HTML元素标签做恰当的事情。 优点: 提升可访问性; SEO; 结构清晰,利于维护; 通用容器:div——块级通用容器;span——短语内容无语义容器。 <title></title>:简...

莫西摩西
36分钟前
2
0
修改11g rac中 asm diskstring的发现路径

问题 : 如果我 们asm_disking以前是/dev/oracleasm/disks/* ,并且现在已经有磁盘组再用这个磁盘串了,那么,我们无法直接修改这个发现串为 ORCL:*,修改会报错,提示存在的磁盘无法使用新的...

tututu_jiang
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部