文档章节

java中的方法重载( Overload )

牧羊人Berg
 牧羊人Berg
发布于 2015/10/13 23:48
字数 424
阅读 62
收藏 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
粉丝 24
博文 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
每周10道Java面试题:面向对象, 类加载器, JDBC, Spring 基础概念

本文作者:ImportNew -唐尤华 未经许可,禁止转载! 每周10道 Java 面试题由 ImportNew 整理编译自网络,欢迎投稿您面试中遇到过的疑难问题。 1. 为什么说Java是一门平台无关语言? 平台无关...

ImportNew
12/13
0
0
Java中的静态分派和动态分派

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

Sel_hui
2014/04/03
0
3
13《Java核心技术》之接口和抽象类有什么区别?

一、提出问题 Java 是非常典型的面向对象语言,曾经有一段时间,程序员整天把面向对象、设计模式挂在嘴边。虽然如今大家对这方面已经不再那么狂热,但是不可否认,掌握面向对象设计原则和技巧...

飞鱼说编程
10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
7
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
12
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
14
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部