Java方法重载
在Java中,同一个类中的多个方法可以同名,只要它们的参数列表不同,这称为方法重载()。
参数列表也称为参数签名,包括参数的类型、参数的个数和参数的顺序。只要有一个差异方法,就称为参数列表差异。
重载是面向对象的基本特征。
请参阅下面的详细示例。
public class Demo{ // 一个普通的方法,不带参数 void test(){ System.out.println("No parameters"); } // 重载上面的方法,并且带了一个整型参数 void test(int a){ System.out.println("a: " + a); } // 重载上面的方法,并且带了两个参数 void test(int a,int b){ System.out.println("a and b: " + a + " " + b); } // 重载上面的方法,并且带了一个双精度参数 double test(double a){ System.out.println("double a: " + a); return a*a; } public static void main(String args[]){ Demo obj= new Demo(); obj.test(); obj.test(2); obj.test(2,3); obj.test(2.0); } }
运行结果:
不
a2
a和b:2 3
一个:2.0
通过上面的例子,读者可以看出重载是一个类中函数名相同但形参不同的函数。由于重载,程序段可以最大限度地减少代码和方法的多样性。
阐明:
方法重载的规则:
方法重载的实现:
当方法名相同时,编译器会根据调用方法的参数个数和参数类型一一匹配,选择对应的方法。如果匹配失败方法,编译器会报错,称为重载解析。