快速业务通道

JAVA基础培训(10),方法的Overload介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

JAVA基础培训(10),方法的Overload介绍

时间:2011-04-07 csdn 老紫竹

今天在项目里做事,中午休息时间,补上这个教程吧。这次我们看看Overload 的内容 。

测试代码

package lession10; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * 老紫竹JAVA基础培训(10),方法的Overload介绍.<br> * 匹配方式为最特殊匹配,或者叫最准确匹配<br> * 如果发现多个都有相同的匹配度,则编译报错。 * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession10 {  public void test1(byte id) {   System.out.println("test1(byte);");  }  public void test1(short id) {   System.out.println("test1(short);");  }  public void test1(int id) {   System.out.println("test1(int);");  }  public void test1(long id) {   System.out.println("test1(long);");  }  public void test1(float id) {   System.out.println("test1(float);");  }  public void test1(double id) {   System.out.println("test1(double);");  }  public void test2(Object o) {   System.out.println("test2(Object);");  }  public void test2(String o) {   System.out.println("test2(String);");  }  public void test2(Integer o) {   System.out.println("test2(Integer);");  }  public void test2(List o) {   System.out.println("test2(List);");  }  public void test2(ArrayList o) {   System.out.println("test2(ArrayList);");  }  public void test3(int a, float b) {   System.out.println("test3(int,float);");  }  public void test3(long a, double b) {   System.out.println("test3(long,double);");  }  public static void main(String[] args) {   Lession10 o = new Lession10();   o.test1(1); // 整数默认为 int   o.test1((byte) 1); // 强制调用 byte   o.test1((short) 1); // 强制调用 short   o.test1(1L); // long   o.test1(1.0); // 小数默认为 double   o.test1(1.0F); // 强制调用float   //   o.test2(new Object()); // 对象类型   o.test2("String"); // 字符串比对象更准确   o.test2(new Integer(3)); // 整数对象   o.test2(3); // JDK 5及以上   o.test2(new LinkedList()); // 调用更匹配的List   o.test2(new ArrayList()); // 调用 ArrayList   //   // 强制转换测试   o.test2((Object) new ArrayList()); // 以强制后的类型进行屁屁额   o.test2((List) new ArrayList());// 以强制后的类型进行屁屁额   // 多参数测试   o.test3(1, 2);   o.test3(1L, 3);   o.test3(1, 3D); // 自动升级优先,int可以自动升级到long,float可以自动升级到 double   //   // o.test2(null); // 不能确定匹配度的测试  } }

JAVA基础培训(10),方法的Overload介绍(2)

时间:2011-04-07 csdn 老紫竹

写一下运行结果大家参考

test1(int); test1(byte); test1(short); test1(long); test1(double); test1(float); test2(Object); test2(String); test2(Integer); test2(String); test2(List); test2(ArrayList); test2(Object); test2(List); test3(int,float); test3(long,double); test3(long,double);

测试:

1 其中最后一个带有注释,大家可以去掉注释看看编译效果,熟悉一些这个错误。

2 数字是最容易混淆的,大家可以用各种数字混合看看, 整数可以转化为对应精度的 浮点数

3 增加更多的参数类型,一般不超过5个,测试各种组合的系统匹配情况,加深印象。

总结:

1 以最贴切,最准确的匹配进行调用

2 如果没有完全匹配的,则进行允许的不丢失精度的类型转换,int可以升级为 long,float可以升级为double, 整数可以升级为浮点数

3 如果还没有匹配的,则报错

JAVA基础培训(10),方法的Overload介绍 - 编程入门网

4 如果发现有多个匹配的,无法确定到底是哪一个,则编译报错

JAVA基础培训(10),方法的Overload介绍 - 编程入门网

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号