开发工具与关键技术:Java、myEclipse
作者:吴晓佩

重载的定义:
重载是在一个类里面,函数名相同,而参数不同,返回类型可以相同的也可以不相同,该函数即称之为该函数的重载。
1、 重载的存在屏蔽了一个对象的同一类方法由于参数不同所造成的差异。
2、 每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
3、 方法可以重载,构造器也可以重载。

重载规则:
1、 被重载的方法必须形参列表不一样(参数个数或类型不一样);
2、 被重载的方法可以改变返回类型;
3、 被重载的方法可以改变访问修饰符;
4、 被重载的方法可以声明新的或更广的检查异常;
5、 方法能够在同一个类中或者在一个子类中被重载。
6、 返回值类型不能作为重载的区分标准。

如下是构造器(ChongZai())重载的代码示例,构成重载,首先构造器的名称要相同,返回值,修饰符都不能作为区分构造器的依据,但是又要区分构造器就只能依靠形参的改变来区分了,一是形参个数不相同,而是形参类型不相同。

java中怎么重载函数 java重载函数的定义_构造器


如下是方法(demo())重载的代码示例,写法跟规则跟构造器重载相似。

java中怎么重载函数 java重载函数的定义_构造器_02


通常我们容易把方法的重载跟方法的重写搞混,如下介绍的是方法重载与方法重写之间的区别。

java中怎么重载函数 java重载函数的定义_方法重写_03


1、方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同 而类型和次序不同,则称为方法的重载(Overloading)。

2、方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一 样,返回值也一样的方法,就称为重写(Overriding)。

3、方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。

注意:
1、Final修饰的方法不能被重载。
2、参数个数相同时,参数类型一定不可以相同,参数类型相同时,参数个数则不可以相同。需要注意的是不是参数名不可以相同,是参数的类型,与参数名无关。