- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
方法重载在JAVA中应用之我见
方法重载在JAVA中应用之我见
【摘 要】方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
【关键词】方法重载;多态性;参数
一、方法重载性质
多态性可以用“一个对外接口,多个内在实现方法”来表示。也就是说,我们可以在一个类中定义多个同名方法,程序在调用某个方法时,系统会自动根据参数类型和个数的不同调用不同的方法,这种机制被称为方法重载。它与方法重写不一样。方法重载:同一个类中,方法名相同,参数不同,方法体不同;方法重写:不同的类中,方法体不同,参数相同,方法名也相同.(两同两不同)方法重载的作用:在有多个同名参数的类中,在调用时通过不同的参数来调用不同的方法。方法重写的作用: 在继承中,子类可用方法重写,对父类进行扩充或改造。
Java支持重载方法,即多个方法可以共享一个名字。但是,各方法之间必须在参数个数、顺序或类型方面有所区别。如下就是一个重载了而重载要满足一下条件:1.必须是同一个类。2.方法名(也可以叫函数)一样。3.参数类型不一样或参数数量不一样。
例如:
public class DoubleIt{
public static String doubleItt(String data){ // 参数类型为String
System.out.println(data+data);
returndata+data;
}
public static intdoubleItt(int data){ // 参数类型为int
System.out.println(2*data);
return 2*data;
}
}
二、方法重载作用
方法重载就是对不同数据类型的的数据实现相似的操作。方法重载,很大程度是为了程序的可读性,即使不用,也是不会妨碍程序运行的。当我们利用继承由父类创建子类时,如果父类中的某些方法不适合子类,我们无法删除它们,但可以重新定义它们,这被称为覆盖。
三、方法重载的类型
java允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会产生编译时错误,这个过程被称为重载的解析。
(一)普通方法的重载
普通方法的重载是Java实现多态技术的重要手段,为编程带来了很多便利
当方法同名时,为了让编译器区别他们,至少需要下面之一不同:
1)参数个数不同
2)对应位置上的参数类型不同不允许参数完全相同而只是返回值不同的情况出现。无法进行编译,程序在eclips中显示错误。
(二)构造方法的重载
(三)重载的解析
当类的设计者提供了重载方法之后,类的使用者在使用这些方法时编译器需要确定调用哪一个方法,确定的唯一依据是参数列表,确定的过程被称为重载的解析。
以下举些例子说明:
showaa(int a ,int b,int c) //这是一个具有相同的参数数据类型的方法
showaa(int a ,int b,double c) //这是一个具有不同数据类型参数的方法
showaa(int a ,double b,double c)// 这是一个具有不同数据类型参数的方法
showaa(double a,doubleb,int c) //这是一个具有不同数据类型参数的方法
下面是调用
showaa(4,2,3);//1,2,3,4都是可行方法所有参数完全匹配1
showaa(6.0,2.0,3.0);//没有一个可行方法
showaa(4.0,2,3);//4是最佳可行方法
showaa(7,2.0,3);//3,4都是可行方法,没有最佳可行方法,报错。
重载和覆盖都是多态的表现,他们在某些地方很相似,很容易引起初学者的疑惑,这里将它们之间的区别总结如下:
1.重载和覆盖的方法名称都相同,但重载要求参数列表不同,而覆盖要求参数列表完全相同。
2.重载对于方法前面的修饰符没有限制,而覆盖则对这些修饰符的使用有限制
3.重载时编译器在编译期间就可以确定调用那一个方法,而覆盖则有可能在运行期间才能确定。
四、方法重载与重写的区别
方法重载是指方法名和方法的返回类型都相同,但方法参数不一样. 参数不一样体现在参数个数和参数类型不一样.方法重写:
您可能关注的文档
最近下载
- 北师大版-数学-五年级上册-《多边形的面积》单元分析.doc VIP
- 新高考背景下历史课程教学改革探索教学研究课题报告.docx
- 2023-2024学年四川省成都市锦江区八年级(下)期末数学试卷(1).doc VIP
- DL T 1144-2012《火电工程项目质量管理规程》.pdf VIP
- 教科版六年级科学上册全册必背知识点知识清单.pdf VIP
- 《孩子是春天的另一种姿势》阅读练习及答案.doc VIP
- 2022-2023学年四川省成都市锦江区八年级(上)期末数学试卷.docx VIP
- T_CVMA 224-2025 猫传染性腹膜炎诊断规程.pdf VIP
- T_CVMA 232-2025 猪星状病毒五型荧光PCR检测方法.docx VIP
- T_CVMA 252-2025 马四肢X线及超声操作规范.pdf VIP
文档评论(0)