A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Enhon1992 中级黑马   /  2015-6-4 09:51  /  551 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

重载的概念:
在同一个类中允许存在一个以上的同名函数,只要这些函数的参数类型或者参数的个数还有或者是参数的顺序不同,这些函数就可以构成重载;

简单来说就是参数列表不同就可以构成重载 比如:下面两个函数就可以构成重载
  1. public void test(int b,String s )
  2.     {
  3.         
  4.     }

  5.     public void test(String s,int b)
  6.     {
  7.         
  8.     }
复制代码


重载需要注意的地方:
1 ,与函数的返回值无关
比如:下面两个函数就不构成重载 因为参数列表一样
  1.         public void test(int b,String s )
  2.     {
  3.         
  4.     }

  5.     public int test(int b,String s)
  6.     {
  7.         return 0;
  8.     }
  9. }
复制代码


2.与函数是否是静态无关
比如:下面两个函数也不构成重载 因为参数列表一样
  1.         public void test(int b,String s )
  2.     {
  3.         
  4.     }
  5.         public static void test(int b,String s)
  6.         {
  7.                
  8.         }
复制代码


3,与函数是否声明了 Checked Exception  无关
比如:下面两个函数同样不构成重载 因为参数列表一样
  1.         public void test(int b,String s )throws IOException
  2.     {
  3.         
  4.     }

  5.         public void test(int b,String s )
  6.         {
  7.                
  8.         }
复制代码


重载的应用场景:
比如:现在我们的需求是定义 实现加法运算的函数,由于进行加法的运算的两个数的数据的数据类型不确定 我们就可以通过重载来定义多个函数名相同的函数 每个函数对不同的数据类型进行加法运算

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

4 个回复

倒序浏览
再整理个构造器重载呗
回复 使用道具 举报
挺详细的
回复 使用道具 举报
jife94 发表于 2015-6-4 10:05
再整理个构造器重载呗

好的!!!!
回复 使用道具 举报
JVM会对每一个类建立一个方法表,里面记录了方法的签名(方法名+参数类型),在调用方法时,首先看是静态加载还是动态加载,静态加载指的是用private(私有函数子类不可见),static(静态没有隐式参数this),final修饰的方法,这些方法唯一,可以直接确定。动态加载则是其他。静态加载直接查看方法表寻找签名相符的方法,动态加载列举出对象所有超类的public方法和本类方法的签名,寻找相符的方法。如果有多个方法相符或者没有方法相符则异常,有唯一的方法则调用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马