集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Java >

[成都java培训机构哪家好]Java的重载以及与重写的区别

发布者: 成都达内     浏览次数:     发布时间:2020-09-23 10:53:29

[成都java培训机构哪家好]Java的重载以及与重写的区别,方法的重载就是在同一个类中,有着若干个名字相同的方法。在具体调用这些方法的时候,通过传递参数的不同来调用这些重载方...

  一、什么是方法重载

  方法的重载就是在同一个类中,有着若干个名字相同的方法。在具体调用这些方法的时候,通过传递参数的不同来调用这些重载方法。

  二、为什么需要方法重载

  方法名的定义需要做到见名知意,功能类似的方法一定程度上注定了方法名的相同,重载的使用有好的解决了这种因见名知意带来的方法名冲突。

  重载可以提高代码的可读性和可维护性。方法名相同的方法在一起能够清晰知道每一个方法的区别,提高代码可读性,也方便后期的代码维护。

  三、方法重载的规则

  方法名必须相同

  public static int add(int a){

  return a+1;

  }

  public static int add(int a,int b){

  return a+b;

  }

  public static int add(int a,int b,int c){

  return a+b+c;

  }

  方法名必须相同,比如这里的add()方法,如果第二个add()方法改成add2()那就不是方法重载了。

  方法的参数列表必须不相同。(方法的参数列表包括方法的参数个数以及参数类型和参数顺序)

  参数个数不相同,还是上面代码:

  public class Myclass {

  public static int add(int a){

  return a+1;

  }

  public static int add(int a,int b){

  return a+b;

  }

  public static int add(int a,int b,int c){

  return a+b+c;

  }

  public static void main(String[] args) {

  System.out.println(add(1));

  System.out.println(add(1,2));

  System.out.println(add(1,2,3));

  }

  }

  运行结果如下:

  2

  3

  6

  参数类型不相同

  public class Myclass {

  public static void add(int a,int b){

  System.out.println(a+b);

  }

  public static void add(double a,double b){

  System.out.println(a+b);

  }

  public static void main(String[] args) {

  add(1,2);

  add(1.2,2.3);

  }

  }

  运行结果:

  23

  3.5

  这里的参数不同,一个是int类型的参数,一个是double类型的参数,满足重载的条件

  参数顺序不同也可以满足重载

  public class Myclass {

  public static double add(double b,int a){

  return a+b;

  }

  public static double add(int a,double b){

  return a*b;

  }

  public static void main(String[] args) {

  System.out.println(add(1.2,2));

  System.out.println(add(2,2.0));

  }

  }

  运行结果:

  3.2

  4.0

  这里对参数顺序进行调换位置,编译器依旧能够找到对应的方法。

  方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错,这叫做重载分辨。

  四、方法重载的注意事项

  方法的返回类型可以相同也可以不相同。

  这里让参数保持一致,改变方法类型。根据IDEA提示发现无法在参数一致的时候通过方法返回类型来进行方法重载

  [成都java培训机构哪家好]Java的重载以及与重写的区别

  当适当的改变方法参数,代码如下,编译通过。

  public class Myclass {

  public static int add(int a,int b){

  return a+b;

  }

  public static double add(int a,double b){

  return a+b;

  }

  public static void main(String[] args) {

  System.out.println(add(1,2)); //输出3

  System.out.println(add(1,2.0)); //输出3.0

  }

  }

  由上可知,方法重载的关键是在参数列表上,仅仅返回类型不同不足以称为方法的重载,方法的返回类型可以相同也可以不相同。

  方法的修饰符并不影响方法的重载。

  我们改变上例中方法的修饰符。结果正常输出:

  public class Myclass {

  public static int add(int a,int b){

  return a+b;

  }

  static double add(int a,double b){

  return a+b;

  }

  public static void main(String[] args) {

  System.out.println(add(1,2)); //输出3

  System.out.println(add(1,2.0)); //输出3.0

  }

  }

  main方法也可以被重载。

  public class Myclass {

  public static void main(String name) {

  System.out.println(name+"你好");

  }

  public static void main(String[] args) {

  main("ThreePure");

  }

  }

  main方法可以重载,只不过虚拟机只调用带字符串公共类型的main方法,public static void main(String[] args){}。

  五、方法重载与方法重写的区别

  [成都java培训机构哪家好]Java的重载以及与重写的区别

  区别重载和重写的最好的判断方法就是是否出现在继承中,以及参数列表是否必须完全相同。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56