目录
前言
前面学习了方法的定义及使用,并且也做了几天练习了,今天来讲一下方法的重载,三个问题,什么是方法的重载?构成方法的重载有哪些条件?方法的重载有什么用?
什么是方法的重载?
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会 根据不同的参数自动匹配对应的方法。
构成方法的重载有哪些条件?
1、形参类型不同
如 public int add(int a,int b){return a+b;} 和 public double add(double a,double b){return a+b;} ,这里两个方法,名称相同,但是形参的数据类型不一样,所以构成重载。
2、形参个数不同
如 public double area(double l,double w){ return l*w; } 和 public double area(double r){return 3.1415926*r*r; },这里两个方法分别是求长方形的面积和圆形的面积,名称一样,但是形参个数不一样,所以也构成重载。
3、参数顺序不同
如public double add(int a,double b){ return a+b;}和public double add(double a,int b) {return a+b;},这里的两个函数的两个参数都是一个int类型,一个double类型,但是一个是int在前,一个是double在前,所以这两个函数也是构成重载的。
4、错误例子
public double add(int a,int b){return a+b;} public int add(int a,int b){return a+b;}
这里就会报错,这里就会有人问了,我这不是重载吗?怎么会报错呢?很简单,这里虽然返回值不同,但是它们两个的形参类型相同,形参的个数也一样,所以不构成重载。
public int add(int a,int b){return a+b;} public int add(int m,int n){return m+n;}
这里也会报错,那么这里报错又是什么原因呢?这里虽然形参名字不同,但是形参类型还是一样的,形参的个数也都是两个,所以不构成重载。
方法的重载有什么用?
重载的最直接作用是方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。