重载就是在一个类中,有相同的方法名称,但形参列表不同的函数,这样的方法之间构成重载关系。
方法的重载的规则
实现理论:
上(狂神说)下(Java小伙_银子)
===========================================================
体现形式:
方法重载的主要形式有:参数的个数不同、参数的类型不同、参数的顺序不同,与形参变量名和返回值类型无关,但建议返回值类型最好相同。
判断方法是否重载的核心:调用能否区分。
那么在调用这么多个方法名相同的方法的其中一个方法时,该怎么调用呢?
看下图
如果返回值类型不同怎么样?
如下面的例子:
可见,调用方法会改变,而且返回值类型由void转为int时还要在方法体中加入return()语句,才能被调用。
``` JAVA package training; public class 方法重载 { void show(){ System.out.println("show()"); } int show(int i){ System.out.println("show()"); return 0; }
public static void main(String[] args) {
方法重载 ot = new 方法重载();
ot.show();//show() ot.show(66);//show()
}
}
```
/* 变成实现重载体现形式的测试 */ public class OverLoadTest{ //这个show方法就叫这个OverLoadTest类的成员方法 void show(){ System.out.println("show()"); } void show(int i){ //构成方法重载,体现在参数的个数不同 System.out.println("show(int)"); } void show(int i,double d){//构成方法重载,体现在参数的个数不同 System.out.println("show(int,double)"); } void show(int i,int j){//构成方法重载,体现在参数的类型不同 System.out.println("show(int,int)"); } void show(double d,int i){//构成方法重载,体现在参数的顺序不同 System.out.println("show(double,int)"); } /* void show(int d,double i){//error 与形参变量名无关 System.out.println("show(int,double)"); } */ /* int show(){ //error 与返回值类型无关 System.out.println("show()"); } */ public static void main(String[] args){ //声明本类类型的引用 指向本类的对象 OverLoadTest ot = new OverLoadTest(); //调用成员方法 ot.show(); //show() ot.show(66); //show(int) ot.show(66,3.14); //show(int,double) ot.show(66,118); //show(int,int) ot.show(66.0,118);//show(double,int) } }